我有一个按钮设置来点击页面上的输入,但是当我点击它时,该网站会挂起一段时间。我想知道是否有办法让该功能在移动到下一个之前一次单击一个,点击时可能不会使页面陷入困境?还是更好的方法?
function clearInput() {
$('input').click();
}
答案 0 :(得分:2)
对于调试冻结问题,您是否有事件绑定到每个输入?可能是jQuery点击所有这些同时触发太多事件,尝试在输入事件上放置断点或console.log,看看有多少被触发等。
要取消绑定所有事件绑定到输入尝试这个,它还将所有输入设置为null:
setTimeout(function() {
_this.off();
_this.click();
_this.val(null);
}, interval)
对于您的问题,这是一个解决方案,可以延迟点击每个输入。
在输入上使用jquery each()
,每次迭代创建一个增加延迟的setTimeout,例如,我使用500ms,你可以将它改为10ms或其他。
function clearInput() {
var interval = 500;
$('input').each(function() {
var _this = $(this);
setTimeout(function() {
_this.click(); //this is the function you need to call
console.log(_this.val()); //for example only, remove later
_this.val(null); //for example only, remove later
}, interval)
interval += 500;
});
}
clearInput();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="1" />
<input value="2" />
<input value="3" />
<input value="4" />
<input value="5" />