2017-05-25 128 views
1

我有一个按钮设置可以在页面上点击输入,但是当我点击它时,网站会暂停一段时间。我想知道是否有一种方法可以在移动到下一个函数之前单击一个函数,这可能不会在点击时陷入页面?或者更好的方法?如果您一次点击一次或一次点击一次

function clearInput() { 
    $('input').click(); 
} 
+2

为什么点击输入? – guradio

+0

您可以使用超时循环,并一个接一个地点击它们。 – Shomz

+0

我必须点击它们,因为另一个功能被触发onclick事件的输入 – MShack

回答

2

对于调试冻结问题,你有事件绑定到每个输入?可能是jQuery同时点击了所有的事件,同时触发了太多的事件,尝试在输入事件上放置一个断点或console.log,查看有多少个触发器等。

要解除所有绑定到输入的事件,试试这个,它也将所有输入到空:

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" />

+0

这回答了OP的问题......但也许不是他的问题。无论如何+1 –

+0

@LouysPatriceBessette谢谢! –