.queue() 和 jquery.queue() 之间的区别

Difference between .queue() and jquery.queue()

可能是个愚蠢的问题,但我对 .queue().dequeue()$.queue()jquery.queue() 一起使用感到困惑。

它们是否相同,如果是,为什么 jquery 在 2 个单独的文档中提供它们?有人可以用适当的例子来解释他们的用法差异吗?

https://api.jquery.com/queue/

http://api.jquery.com/jquery.queue/

http://api.jquery.com/jquery.queue/

所述

Note: This is a low-level method, you should probably use .queue() instead.

内部 $(selector).queue()$(selector).dequeue() 分别使用 $.queue()$.dequeue()

这是 $(selector).queue()$(selector).dequeue() jQuery 2.1.3 的代码:

jQuery.fn.extend({
    queue: function( type, data ) {
        var setter = 2;

        if ( typeof type !== "string" ) {
            data = type;
            type = "fx";
            setter--;
        }

        if ( arguments.length < setter ) {
            return jQuery.queue( this[0], type );
        }

        return data === undefined ?
            this :
            this.each(function() {
                var queue = jQuery.queue( this, type, data ); // <-- HERE!

                // Ensure a hooks for this queue
                jQuery._queueHooks( this, type );

                if ( type === "fx" && queue[0] !== "inprogress" ) {
                    jQuery.dequeue( this, type ); // <-- HERE!
                }
            });
    },
    dequeue: function( type ) {
        return this.each(function() {
            jQuery.dequeue( this, type ); // <-- HERE!
        });
    },

....

.queue() 用作 jQuery 元素的方法。

只有一个参数"queueName"

$("div:first").queue("fx")

jquery.queue() 是一个独立函数,它将接受 DOM 元素作为第一个参数,第二个参数作为队列名称。

jQuery.queue($("div:first")[0], "fx" );

两者的作用相同,只是方法不同。