2017-06-23 14 views
0

選択変更時に$('selector').on('change', ...)関数が複数回起動されることがあるという問題があります。変更時にjQueryを使用して複数のイベントを呼び出すのを防ぐ方法

私はいつも.on機能を使用していますが、私はいつも.off()機能を追加し、それは素晴らしい動作します。しかし、この場合、オフ機能は選択入力を無効にしているという事実のためにオフ機能を使用することはできません。

event.preventDefault()event.stopImmediatePropagation()を追加しようとしましたが、解決策ではありません。

JS:

$('#addMealToMenuDiet').on('change', function(event) { 
    //then ajax function is called 
}); 

はHTML:

<select id="addMealToMenuDiet" class="form-control"> 
    ... 
</select> 

私は、このような状況を回避するにはどうすればよいですか?


ソリューション

残念ながら私の変更方法については、クリックの方法で別の中に入れました。したがって、それが最も可能性があなたのコードを複数回実行します

+0

あなたは 'addMealToMenuDiet'要素の力学を作成していますそう? – Satpal

+0

上記のjsを実行するたびに、イベントが発生するまでカウントアップします –

+0

#addMealToMenuDietは動的に作成されません。あなたの言いたいことは何ですか? –

答えて

1

それはちょうどあなたの他のコード

function myAjaxfunction(){ 
//... 
} 
前に、関数にあなたのAjaxのものを入れてバインドし、あなたは、単にいつもあなたの前にイベントをバインド解除することができ...複数回呼び出されました

その後、あなたが救う側にあるあなたの選択

$(document).off("change", '#addMealToMenuDiet', myAjaxFunction).on("change", '#addMealToMenuDiet', myAjaxFunction) 

この方法を初期化するために、これを実行します。)

+0

ありがとうございました。 –

関連する問題