实时获取div上的排队函数

时间:2015-02-08 19:42:09

标签: javascript jquery

嘿伙计们,我在查询文档中看到了以下功能

Jquery.queue(),文档中有一个非常好的例子,它实际上展示了如何获得在任何html元素上排队的动画的长度。下面是一个显示示例o queue()

的小提琴

现在我正在构建一个Jquery插件,我需要在其中实时检查HTML元素上排队的动画数量,让我们快速查看文档中的代码。

var div = $( "div" );
function runIt() {
div.show( "slow" )
    .animate({ left: "+=200" }, 2000 )
    .slideToggle( 1000 )
    .slideToggle( "fast" )
    .animate({ left: "-=200" }, 1500 )
    .hide( "slow" )
    .show( 1200 )
    .slideUp( "normal", runIt );
}

function showIt() {
    var n = div.queue( "fx" );
    $( "span" ).text( n.length );
    setTimeout( showIt, 100 );
}
    runIt();
    showIt();

最后两行是关键的,runIt()基本上执行给定div上的所有动画,showit()基本上在最后一行调用一次,然后在100ms的间隙后再次运行。

这是我在上面的代码中列出的困难:

showit()在最后一行调用时运行一次,第一次运行,在100ms后调用setTimeOut函数时运行,但是如何在小提琴或文档中运行showit()函数是被称为每100毫秒?据我所知,如果需要每100ms调用一次showit(),它应该是setInterval而不是setTimeOut(setTimeOut只运行一次而不是递归。右边??)。

我的问题是,每次调用showit()时,它都会返回排队的准确动画数量,但不知何故,runit()和showit()不同步我猜!这就是猜测(是的!我不是Jquery的天才。),它不像每次执行动画队列中的功能时,showit()函数正在更新排队的正确动画数,而不是showit()函数(正如在这个给定函数中编码的那样),实际上给我们一个印象,它与runit()函数同步(当我的意思是同步时,再说一遍,我说的是每次动画在runit中执行()函数,showit()没有更新值.. istead showit()每100ms更新一次队列的值,这给我们一个showit()与runit()同步的印象。

我对我的解释Showit()是不是与runt()同步..虽然看似它是?? ..这就是我的问题。

当然,我的第二个问题是,为什么showit每100毫秒运行一次?当我看到它的编码只在小片段中运行两次。

谢谢。

Tenali。

0 个答案:

没有答案