1

興味深い状況があります。ガジリオン可動パーツのページを編集中です。

とにかく、(ダイアログ作成クラスを介して)ボディクリックハンドラにバインドされたダイアログボックス(ポップアップ)があります。基本的に、ページのどこかをクリックすると、ページが閉じます。わかりました。

これが摩擦です。その「$(body).trigger('click')」を実行するページには別のプロセスがあります。この状況では、特定のダイアログを閉じたくないため、これは問題を引き起こしています。

いくつかのテストを実行しましたが、それらは同じように見えます-1.) トリガーを介してクリックを生成し、2.) 実際にページの本文をクリックします。

クリックが「偽の」トリガー呼び出しなのか、実際の「クリック」イベントなのかを知る識別可能な方法はありますか? トリガーされたクリックでは何もバブリングしていないので、ページに子要素があるかどうかを何らかの形で確認して、バブリングか何かを確認する方法はありますか?

説明が簡潔であることを願っています。

4

1 に答える 1

3

HTML:

<input type="button" id="button" value="click me" />

JS:

$("#button").on("click", function(e) {
    if(typeof e.isTrigger == 'undefined') {
        console.log("clicked");
    } else {
        console.log("triggered");
    }
});

setTimeout(function() {
    $("#button").trigger("click");
}, 1000);

デモ: http://jsfiddle.net/wXnwp/1/

jQuery 1.6 のバージョン => http://jsfiddle.net/wXnwp/3/

$("#button").click(function(e) {
    if(typeof e.ctrlKey !== 'undefined') {
        console.log("clicked");
    } else {
        console.log("triggered");
    }
});

setTimeout(function() {
    $("#button").trigger("click");
}, 1000);
于 2013-09-24T07:57:35.523 に答える