【问题标题】:Difference between .queue() and jquery.queue().queue() 和 jquery.queue() 之间的区别
【发布时间】:2015-04-23 07:09:34
【问题描述】:

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

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

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

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

【问题讨论】:

  • 第一个应用于 jquery 对象,这意味着所有“选定”元素,而第二个仅一对一元素
  • 这有帮助。谢谢帕维尔。

标签: javascript jquery html queue


【解决方案1】:

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

它只有一个参数“queueName”

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

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

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

两者的工作原理相同,只是方法不同。

【讨论】:

  • 这意味着,我们不需要单独使用 '$.queue()' 或 '$.dequeue()',因为我们可以在 ".queue()" 的帮助下完成所有这些工作,并且“.dequeue()” 容易吗?
  • 是的,我们不需要这样做。 jQuery 团队记录了较低级别和较高级别的方法。
  • 除了 .queue() 和 .dequeue() 之外,jQuery 团队还记录了“低”和“高”级别的方法吗?
  • 是的,另一个例子是 .data() (api.jquery.com/data) 和 jQuery.data() (api.jquery.com/jquery.data)
【解决方案2】:

正如http://api.jquery.com/jquery.queue/所说的

注意:这是一个低级方法,你应该使用 .queue() 代替。

在内部 $(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!
        });
    },

....

【讨论】:

    猜你喜欢
    • 2016-10-17
    • 2013-07-09
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    相关资源
    最近更新 更多