如何在jquery中延迟焦点事件?

top*_*ess 2 javascript jquery focus delay

我的页面上有几个按钮,我希望以一定的延迟切换每个按钮.我如何用jquery或纯javascript实现这一点.这是我按照所有按钮迭代的想法,但我显然最终关注了我的最后一个按钮.

$(document).ready(function() {
var allButtons = $(":button");
for (i=0;i<=allButtons.length;i++) {
   $('.category_button')[i].focus()
}
});
Run Code Online (Sandbox Code Playgroud)

mVC*_*Chr 6

您可以通过在for循环中创建闭包并将索引传递给setTimeout延迟来完成此操作:

var allButtons = $(":button");
for (i = 0; i < allButtons.length; i++) {
    (function(index) {
        setTimeout(function() { 
            allButtons[index].focus(); 
        }, 1000*index);
    }(i));
}
Run Code Online (Sandbox Code Playgroud)

见这里的例子.