2012-01-30 11 views
0

現在、次のコードを使用して、Firefoxアドオンからイベントをトリガーしています。jQueryを使用したイベント作成/トリガー

var hiddenArea = document.getElementById("section_help"); 
    if (hiddenArea) { 
     var evt = document.createEvent("MouseEvents"); 
     evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     hiddenArea.dispatchEvent(evt); 
    } 

私は

$("#section_help").trigger("click"); 

を使用してjQueryを使って同じことを達成しようとしたが、それは動作しません。 jQueryは元のコードで埋め込まれたイベントをトリガーしません。

私の責任はどこですか?

答えて

1

jQuery documentationは以下の言及:).triggerなお

( 合成イベントオブジェクトに完全なイベントの活性化を、シミュレート、それは完全 天然に存在するイベントを複製しません。

私はソースコードを見なければなりませんでした。どうやら、jQueryは実際にはネイティブイベントオブジェクトを作成しません。これは単に独自のイベントハンドラ(jQuery経由で追加されたイベントハンドラ)とonfooプロパティで見つかるものをトリガします。 addEventListener()で追加されたイベントハンドラはトリガされません。イベントに関連付けられたネイティブアクションはトリガーされません(しかし、jQueryはいくつかの特別なケースを処理しているようです)。

要約すると、以前の方法でイベントを作成する方がよいでしょう。それはもっと冗長かもしれませんが、それはあなたが期待することをします。

関連する問題