0

以下の状況で困っています。

まず、ページのすべての要素にクリック イベント ハンドラーを追加します。これにより、小さなポップアップが呼び出されます。この *-selector からポップアップを分離することができないため、ポップアップをポップアップなどに開きます。

私は次のことを試しました:

var controller = can.Control.extend({
    '*:not(.popup *) click': function(el, event) { //This does not work
        $(el).openPopUp() 
        //pseudo code, opens the popup in to <div class"popup"><input /><input /></div>
    },
});
var c = new controller('body');

この問題を特定するためのヒントはありますか。クリックハンドラーは、ポップアップ内の要素以外のすべての要素に本当に必要です, Yours Heikki

4

1 に答える 1

1

あなたがする必要があるのは、ボディに 1 つのクリック イベント ハンドラーを、.popup に 1 つのクリック イベント ハンドラーをアタッチすることだと思います。body クリック ハンドラーがポップアップを開きます。.popup クリック ハンドラーは、イベントをキャプチャして、body 要素に伝達されないようにします。

var controller = can.Control.extend({
    'click': function ($el, event) {
        /* open popup now */
    },
    '.popup click': function ($el, event) {
        event.stopPropagation();
    }
});
于 2014-09-20T13:02:46.257 に答える