jquery12 queue() : 队列方法

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script src="jquery-2.0.3.js"></script>
<script>

jQuery.extend({
    queue  ------------------- push()
    dequeue --------------  shift()
    _queueHooks
});
jQuery.fn.extend({
    queue
    dequeue
    delay
    clearQueue
    promise
});

//队列中存储的都是函数

$(function(){
    function aaa(){
        alert(1);
    }
    function bbb(){
        alert(2);
    }
    $.queue( document , ‘q1‘ , aaa );//q1是队列名字
    $.queue( document , ‘q1‘ , bbb );
    $.queue( document , ‘q1‘ , [aaa,bbb] );
    console.log(   $.queue( document , ‘q1‘ )   );//输出队列所有函数

    $.dequeue( document,‘q1‘ );   //从头取一个,aaa()
    $.dequeue( document,‘q1‘ );   //从头取,bbb()
    ------------------------------------------------------------------
    function aaa(){
        alert(1);
    }
    function bbb(){
        alert(2);
    }
    $(document).queue(‘q1‘,aaa);
    $(document).queue(‘q1‘,bbb);
    console.log(  $(document).queue(‘q1‘)  );//[aaa,bbb]

    $(document).dequeue(‘q1‘);//1
    $(document).dequeue(‘q1‘);//2

});
//[   ]
</script>
</head>

<body>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute;}
</style>
<script src="jquery-2.0.3.js"></script>
<script>

$(function(){

    $(‘#div1‘).click(function(){
        //不是一起变化,先宽完了之后在高最后left,使用队列完成。
        $(this).animate({width : 300},2000);     setInterval
        $(this).animate({height : 300},2000);    setInterval
        $(this).animate({left : 300},2000);      setInterval
    });

    $(‘#div1‘).click(function(){

        $(this).animate({width : 300},2000).queue(function(next){

            $(this).css(‘height‘,300);
            next(); //也可以写成 $(this).dequeue();

        }).animate({left : 300},2000);  

        $(this).animate({width : 300},2000,function(){//第一个animate执行完之后走回调,回调中打开一个定时器就完了,再执行第二个animate,定时器是异步操作,将会跟第二个animate一起进行。

            //$(this).css(‘height‘,300);
            var This = this;
            var timer = setInterval(function(){
                This.style.height = This.offsetHeight + 1 + ‘px‘;
                if( This.offsetHeight == 200 ){
                    clearInterval(timer);
                }
            },30);

        }).animate({left : 300},2000);  

        $(this).animate({width : 300},2000).queue(function(next){

            var This = this;
            var timer = setInterval(function(){
                This.style.height = This.offsetHeight + 1 + ‘px‘;
                if( This.offsetHeight == 200 ){
                    next();
                    clearInterval(timer);
                }
            },30);

        }).animate({left : 300},2000); 

    });
    -------------------------------------------------------------

    function aaa(){
        alert(1);
    }

    function bbb(){
        alert(2);
    }

    $.queue( document , ‘q1‘ , aaa );
    $.queue( document , ‘q1‘ , bbb );
    $.queue( document , ‘q1‘ , [ccc] );//ccc是数组时候覆盖aaa,bbb
    console.log(   $.queue( document , ‘q1‘)  );

    $.dequeue( document , ‘q1‘ );//出队时候函数aaa要执行一次

    ----------------------------------------------------------------
    function aaa(){
        alert(1);
    }

    function bbb(){
        alert(2);
    }

    $(document).queue(‘q1‘,aaa);
    $(document).queue(‘q1‘,bbb);

    console.log( $(document).queue(‘q1‘) );//查看[function, function]0:function aaa()1:function bbb()

    $(document).dequeue(‘q1‘);
    $(document).dequeue(‘q1‘);

});

</script>
</head>

<body>
<div id="div1"></div>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute;}
</style>
<script src="jquery-2.0.3.js"></script>
<script>
//delay() : 延迟队列的执行
$(function(){
    $(‘#div1‘).click(function(){
        $(this).animate({width : 300},2000).animate({left : 300},2000);
        $(this).animate({width : 300},2000).delay(2000).animate({left : 300},2000);
        //队列全部执行完之后,再去调用
        $(this).promise().done(function(){
            alert(123);
        });
    });
});
</script>
</head>

<body>
<div id="div1"></div>
</body>
</html>
时间: 2024-08-09 10:37:00

jquery12 queue() : 队列方法的相关文章

jQuery源码05 (3653 , 3797) queue() : 队列方法 : 执行顺序的管理

//对外接口 jQuery.extend({ queue: function( elem, type, data ) {//入队.元素.队列名字.存进去的函数 //jQuery.queue( this, type, function( next, hooks ) {}) var queue; if ( elem ) { type = ( type || "fx" ) + "queue";//不写队列名字就是fx // $.queue( document , 'q1'

C++ 标准模板库STL 队列 queue 使用方法与应用介绍

C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型. 定义queue对象的示例代码如下: queue<int> q1; queue<double> q2; queue的基本操作有: 入队,如例:q.push(x); 将x接到队列的末端. 出队,如例:

Stack集合 Queue队列集合 Hashtable哈希表

Stack集合 干草堆集合 栈集合 栈;stack,先进后出,一个一个赋值,一个一个取值,安装顺序来. 属性和方法 实例化 初始化 Stack st = new Stack(); 添加元素 1 个数 2 Console.WriteLine(st.Count); 3 只要使用一次pop方法,就会从最后一个元素开始排除 弹出 4 Console.WriteLine(st.Pop()); 5 Console.WriteLine(st.Count); 6 只想查看不弹出 7 Console.WriteL

python2.0_s12_day9之day8遗留知识(queue队列&amp;生产者消费者模型)

4.线程 1.语法 2.join 3.线程锁之Lock\Rlock\信号量 4.将线程变为守护进程 5.Event事件 * 6.queue队列 * 7.生产者消费者模型 4.6 queue队列 queue非常有用,当信息必须安全的在多个线程之间进行数据交换的时候就应该想到queue 所以,queue它能保证数据被安全的在多个线程之间进行交换,那他就是天生的线程安全. queue有那么几种: class queue.Queue(maxsize=0) # 先入先出 class queue.LifoQ

python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)

今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系,纯的python代码处理一般逻辑的确无法活动性能上的极大提升,但是在处理需要等待外部资源返回或多用户的应用程序中,多线程仍然可以作为一个比较好的工具来进行使用. python提供了两个模块thread和threading 来支持python的多线程操作.通俗的讲一般现在我们只使用threading

C#基础---Queue(队列)的应用

   Queue队列,特性先进先出. 在一些项目中我们会遇到对一些数据的Check,如果数据不符合条件将会把不通过的信息返回到界面.但是对于有的数据可能会Check很多条件,如果一个数据一旦很多条件不通过,那么全部错误返回到界面,可能会让用户束手无策.我们有时候往往在一个流程中.只将Check流程中第一个不符合条件的错误提示给用户,让用户修改.首先我们就想到了队列,通过队列将所有的Check方法注册,然后依次出列.执行. Demo背景: XX公司招人,对员工的居住地点,姓氏,年龄都有要求. 一.

python学习笔记-Day11 (线程、进程、queue队列、生产消费模型、携程)

线程使用 ###方式一 import threading def f1(arg): print(arg) t = threading.Thread(target=f1, args=(123,)) t.start() # start会调用run方法执行 # t是threading.Thread类的一个对象 # t.start()就会以线程的方式执行函数,可以使用pycharm ctrl选择start方法 # 找到Thread类的start方法,在start方法的注释中就已经写明,会去调用run()

13 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件  queue队列 生产者消费者模型 Queue队列 开发一个线程池

本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queue队列 开发一个线程池 进程 语法 进程间通讯 进程池 操作系统发展史 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 手工操作程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把

atitit. java queue 队列体系and自定义基于数据库的队列总结o7t

atitit. java queue 队列体系and自定义基于数据库的队列总结o7t 1. 阻塞队列和非阻塞队列 1 2. java.util.Queue接口, 1 3. ConcurrentLinkedQueue 2 4. BlockingQueue阻塞队列 2 4.1. 1. ArrayBlockingQueue 3 4.2. 2. LinkedBlockingQueue 3 4.3. 3. DelayQueue 3 4.4. 4. PriorityBlockingQueue 3 4.5.