Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 循环通过一组按钮_Jquery_Html_Loops - Fatal编程技术网

Jquery 循环通过一组按钮

Jquery 循环通过一组按钮,jquery,html,loops,Jquery,Html,Loops,我写了一个小脚本,它通过一组按钮循环,每个按钮都分配了一个函数。脚本如下: $('#play').bind('click', function() { setTimeout( function(){ $('#b12').click(); }, 0 ); setTimeout( function(){ $('#b13').click(); }, 2500 ); setTimeout( function(){ $('#b14').click(); }, 5000 ); });

我写了一个小脚本,它通过一组按钮循环,每个按钮都分配了一个函数。脚本如下:

$('#play').bind('click', function() {
    setTimeout( function(){ $('#b12').click(); }, 0 );
    setTimeout( function(){ $('#b13').click(); }, 2500 );
    setTimeout( function(){ $('#b14').click(); }, 5000 );
});
现在这很好,但我正试图让它比仅仅用“setTimeout”调用每个函数更自动化一点。我有下面的代码,但我认为我做错了什么:

$('#play').click(function(){ 
    $('.buttons').each(function(){
        var time = 0;
        setTimeout( function(){ $(this).click(); }, time );
        time+= 2500;
    });
});
以下是所讨论的HTML:

<button id="b12" class="buttons" onclick="oct12()">12th</button>
<button id="b13" class="buttons" onclick="oct13()">13th</button>
<button id="b14" class="buttons" onclick="oct14()">14th</button>

<button id="play">play</button>
12
第十三
第十四
玩

将您的
时间
变量置于外部。每个()类似于下面的代码:

$('#play').click(function(){ 
    var time = 0;
    $('.buttons').each(
        setTimeout( function(){ $(this).click(); }, time );
        time+= 2500;
    });
});

将您的
time
变量置于外部。每个()如下面的代码所示:

$('#play').click(function(){ 
    var time = 0;
    $('.buttons').each(
        setTimeout( function(){ $(this).click(); }, time );
        time+= 2500;
    });
});

您可以为此使用.each的索引,在您自己的代码中,在每次迭代中重置时间

   $('#play').click(function(){
       $('.buttons').each(function(i){
        setTimeout( function(){ $(this).click(); }, i * 2500);                
       });

  });

您可以使用的索引。每个用于此目的,在您自己的代码中,每次迭代都会重置时间

   $('#play').click(function(){
       $('.buttons').each(function(i){
        setTimeout( function(){ $(this).click(); }, i * 2500);                
       });

  });

您可以使用类似的。这使得计时问题非常容易:

$('#play').bind('click').$('#b12,#b13,#b14').each($).click().wait(2500);
就这样

此示例使用插件的、和延迟方法


PS:我喜欢写.on('click')而不是.bind('click'),因为它读起来更流畅,就像一个句子。

你可以使用类似于。这使得计时问题非常容易:

$('#play').bind('click').$('#b12,#b13,#b14').each($).click().wait(2500);
就这样

此示例使用插件的、和延迟方法


PS:我喜欢写.on('click')而不是.bind('click'),因为它读起来更流畅,就像一个句子。

这不起作用。但我最初重设时间的错误太愚蠢了!这不管用。但我最初重设时间的错误太愚蠢了!也许你可以解释一下,你想达到什么,因为我只是让你的代码更灵活。现在,每个按钮上都有一个单击事件,但是您想做什么呢?我想做的是;单击播放按钮时,使每个按钮后面的功能运行,每个按钮之间有一个间隔。我得到的第一段代码工作得很好,但我想让它稍微“更好”(因为缺少更好的词)。换句话说,有没有更好的方法让我完成我写的第一段脚本……我的一段评论掉了,我认为发表大量评论是不可能的,但如果我理解你的话:你喜欢在所有按钮上都有点击事件,但用户只能在你设定的时间过去后点击。那么,如果间隔没有通过,你想禁用按钮吗?不,基本上,我想做的是创建一个带有延时的函数,运行所有函数
oct12、oct13、oct14
,并将其绑定到“播放”按钮。也许你可以解释一下,你想达到什么目的,因为我只是让你的代码更灵活。现在,每个按钮上都有一个单击事件,但是您想做什么呢?我想做的是;单击播放按钮时,使每个按钮后面的功能运行,每个按钮之间有一个间隔。我得到的第一段代码工作得很好,但我想让它稍微“更好”(因为缺少更好的词)。换句话说,有没有更好的方法让我完成我写的第一段脚本……我的一段评论掉了,我认为发表大量评论是不可能的,但如果我理解你的话:你喜欢在所有按钮上都有点击事件,但用户只能在你设定的时间过去后点击。如果间隔没有通过,你想禁用这些按钮吗?不,基本上我想做的是创建一个带有延时的函数,运行所有函数
oct12,oct13,oct14
,并将其绑定到“播放”按钮。