2016-06-23 8 views
-1

を働いていない匿名関数をバインド解除します。jQueryのは、私はこのような機能は持って

しかし、$('#someElement').unbind()は期待どおりに動作します。

回答:私は正しい道を見つけ、それは簡単です:

必要が使用する:

function init() { 
    $('#someElement').one('change', function() { 
     init; 
    } 
} 
+0

あなたはrefメソッドを使用してそれをバインドする必要があります: '$( '#someElement')。chosen()。change(init);'(または匿名関数を使用してバインド解除します) –

答えて

3

あなたが故に渡し、changeイベントに無名関数を提供していますアンバインド時のinit()の参照は機能しません。

あなたが必要として、この作業を取得イベントを取り付ける際init()の参照を渡す:

function init() { 
    $('#someElement').unbind('change', init).chosen().change(init); 
} 

注意このアンバインド/バインドパターンが少し冗長だということ。代わりに委任されたイベントハンドラを探して、必要に応じて適切に処理する必要があります。

また、unbind()は古いとみなされ、代わりにoff()を使用する必要があります。

+0

ありがとうございます。私は答えを見つけ、私のトピックのメッセージを追加 –

関連する問題