チェックボックス入力でイベントリスナーの順序を管理するのに問題があります。
たとえば、次の入力がある場合:
<input type='checkbox' class='multi' name='product' id='type1'>
<input type='checkbox' class='multi' name='product' id='type2'>
<input type='checkbox' name='product' id='type3'>
誰かがclass =の入力をクリックするたびにリッスンし.multi
、2つの関数を順番に実行したいと思います。
具体的には、私が欲しいfunction(a)
、実行する前に、チェックボックスの状態の変化が登録されている(すなわち、チェックを実行する前に)。
現在、change
ダイアログボックスの起動中にイベントが発生するため、次のシステムが機能しません。change
イベントを一時停止して、次の状態になるまで待つことができないようです。
$('.multi').on('mousedown', function(a){ // open a jqueryUi dialog box and wait to complete function(a)
//do function(a) ...
$('.dialog').dialog('close');
then, once the dialog is closed...
$(input:checkbox).on('change', function(b){ //do function b only after function a has completed
多分これはあなたが探しているものです:(まだそれをテストしていませんが、これは私の頭の上にあるものです)
$('.multi').on('click',function(e) {
e.preventDefault();
function(a); // your function
$(this).trigger('click');
});
頑張ってください^^
申し訳ありませんが、上記のコードは無限再帰を実行するようです。これを試してください。
$('.multi').on('click',function(e) {
e.preventDefault();
function(a); // your function
if ($(this).is(':checked')) {
$(this).prop('checked',false);
} else {
$(this).prop('checked',true);
}
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加