私は完全に配置されたドロップダウンメニューを書いています。このメニューが開いたときに、私はカスタムイベントをトリガーしています:カスタムjQueryイベントをwindow.documentにバブルする方法は?
ps.DropDown.prototype._onOpenComplete = function() {
$(this).trigger('MENU_OPEN', [this]);
}
私がターゲットにps.DropDownのどのインスタンス知ったときにこれは素晴らしい作品:
var dd = new ps.DropDown();
$(dd).on('MENU_OPEN', fn);
しかし、私は私のカスタムイベントのための希望しますイベントが伝播を停止していない場合は、window.documentにバブルアップします。例:
var dd = new ps.DropDown();
$(dd).on('MENU_OPEN', function(event, instance) {
// this would stop bubbling to $(window.document)
// event.stopPropagation();
});
$(window.document).on('MENU_OPEN', function(event, instance) {
// bubbled!
});
jQueryでこれを達成する方法はありますか?
EDITは、イベントがトリガされます類推
ボタン要素をクリックすることにより例を追加します。このイベントは、(イベントリスナーによって伝播が停止されている場合を除いて)window.documentに到達するまで親要素チェーンをバブルアップし続けます。 event.stopPropagation()が呼び出されていない場合、window.document(または$ .event、またはその他のグローバルなウィンドウ)にバブルするようなカスタムイベントのこの動作の合成に興味があります。
あなたのコードは 'MENU_OPEN'イベントを購読していれば誰でも' .trigger( 'MENU_OPEN')でトリガーされるべきです。 – ShankarSangoli
はい、しかし、私はps.DropDownのインスタンスへの参照を必要としないソリューションを探しています。イベントをwindow.documentにバブリングして欲しい。 – thesmart