に動作していないアンバインドイベント私は、このイベントのバインドを解除しようとしています
$(this).off();
をしかし、私はこれを使用する場合、それは動作しません:
$('select[name=url]').off();
第二に、変更イベント外のイベントをバインドしたいと思います。
に動作していないアンバインドイベント私は、このイベントのバインドを解除しようとしています
$(this).off();
をしかし、私はこれを使用する場合、それは動作しません:
$('select[name=url]').off();
第二に、変更イベント外のイベントをバインドしたいと思います。
特定の委任イベントハンドラを削除するには、セレクタ文字列がイベントハンドラがアタッチされたときに.on()に渡されるセレクタ文字列と正確に一致する必要があるセレクタ引数を指定する必要があります。
この方法では、onchnageコールバックから$(this).off()を使用する必要はありません。また、イベントに名前空間を使用すると、望ましくないイベントをバインド解除しないようにします。
これを試してください。
//here the namespace name is set to 'selection'
$(document).on('change.selection', 'select[name=url]', function() {
alert("Change event triggered");
})
$("button").click(function() {
$(document).off('change.selection', 'select[name=url]')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="url">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button>Unbind</button>
イベントon('change')
はない要素('select[name=url]')
に文書にbinddedさbeacuseそれはあります。
要素選択ごとにイベントの変更を設定する場合は、共通のクラスを設定し、変更イベントをクラスにバインドすることをお勧めします。
あなたが変更イベント
に内側と外側のイベントのバインドを解除することができ、それを行う場合は、あまりにも、それはjQueryのの本当に便利な機能です、名前空間を使用するためにOPを提案する場合があります。) – Terry
確かに。提案していただきありがとうございます。 – Piyush
ありがとう!ちょうど私が望むように動作 –