12


1

私がjQuery(expr).change(function)を実行すると、ユーザーが値を変更したときに発生するイベント関数を取得できます。

プログラム的に変更された場合、つまりjQuery(expr).val( "moo")を呼び出した場合に発生させることは可能ですか?

それとも、Plainの古いJavaScriptが変わっても価値があるのでしょうか。

助けてくれてありがとう。

3 Answer


15


値を変更したら、自分でイベントを起動し、すべての 'onchange’ハンドラを呼び出すことができます。

jQuery( '#element')。change();


5


JSで直接値を変更しても、jQueryがchangeイベントをトリガーするために待機できるものは何もフックしません。 Sanderが言うように、あなたは自分でイベントハンドラを起動することができます。 これらの値を変更する他のコードを制御することができず、それが選択肢ではない場合、あなたはちょっと運が悪いです。 動作する可能性がある他の唯一のオプションは `setTimeout`を使用してオブザーバに間隔で値を監視させることでしょう。


1


jQuery v1はハンドラのプログラムによるトリガをサポートしています。必要に応じて他の複数のハンドラを起動できるように、.change()メソッドではなくこのメソッドを使用しています(例: いくつかのカスタムハンドラ)。 API Documentationはhttp://api.jquery.com/trigger/にあります。