2

「変更」イベントリスナーによってアクティブ化される長いprototype.jsコードを扱っており、「変更」イベントをシミュレートしてプロトタイプスクリプトをアクティブ化するjQuery関数を作成する必要があります。これどうやってするの?

注:$('select[id="..."]').val(...).trigger('change');プロトタイプ スクリプトをアクティブにしません。

4

1 に答える 1

1

jQuery.trigger()は、jQuery 経由で追加されたイベント ハンドラーに対してのみ機能します ( http://api.jquery.com/trigger/を参照) 。

対応するイベントが発生すると、.on() またはそのショートカット メソッドの 1 つに関連付けられたイベント ハンドラーがトリガーされます。ただし、.trigger() メソッドを使用して手動で起動できます。

プロトタイプ.fire()はカスタム イベントに対してのみ機能します ( http://api.prototypejs.org/dom/Event/fire/を参照) 。

element をターゲットとして、名前が eventName のカスタム イベントを発生させます。カスタム イベントの名前には、コロン (:) を含める必要があります。

残念ながら、あなたが説明していることを行う唯一の方法は、「長いprototype.jsコード」への何らかの参照を取得して手動で呼び出すことです。(これは、参照している実装がどのように見えるかによって異なります。) JavaScript を使用して真の「ネイティブ」変更イベントを発生させることはできません。

于 2013-02-02T07:10:29.623 に答える