我的页面上有几个按钮,并且我希望在一定的延迟下将焦点切换到每个按钮上。我如何用jquery或纯javascript实现。这就是我要遍历所有按钮的想法,但显然我最终将重点放在了最后一个按钮上。

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

最佳答案

您可以通过在for循环中创建一个闭包并将索引传递给setTimeout延迟来实现:

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

See example here.

09-05 20:31