2017-05-25 14 views
1

私はページ上の入力をクリックするボタン設定をしていますが、それをクリックするとしばらくサイトがハングします。私は、次のものに移動する前に、一度に1つの機能をクリックする方法があるかどうか疑問に思っています。それとも良い方法ですか?一度にすべてをクリックしてください。

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

理由の入力をクリックしてください? – guradio

+0

タイムアウトループを使用して、それらを1つずつクリックすることができます。 – Shomz

+0

別の関数が入力のclickイベントでトリガーされるので、それらをクリックする必要があります – MShack

答えて

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

+0

これはOPの質問に答える...しかし、彼の問題ではないかもしれません。とにかく+1 –

+0

@LouysPatriceBessetteありがとう! –

関連する問題