0

イベントをポップアップウィンドウにバインドできないようです。これを行う正しい方法は何ですか?イベントをバインドしたいウィンドウを通過する必要があることは知っていますが、これに関する情報はどこにも見つからないようです-過去1時間の情報を検索してきましたが、1つもありません私の努力を示すためのリンク。これが私のさまざまな試みのいくつかです:

// the popup window is referenced by "display.window"
// #map is a <canvas> element occupying 100% of the new window

// I'll just try passing in the context first...
$(display.window, "#map").keydown(function(e) {
    // do stuff
});

// maybe the other way around?
$("#map", display.window).keydown(function(e) {
    // do stuff
});

// what if I just try to add the event right to the window?
$(display.window).keydown(function(e) {
    // do stuff
});

// nope, maybe bind will do the trick
$(display.window).bind(function(e) {
    // do stuff
});

// maybe the new window's DOM isn't loaded yet?
$(display.window).ready(function() {
    $(this).keypress(function(e) {
        // do stuff
    });
});

これらはどれも機能しませんでした。私は何が欠けていますか?

4

1 に答える 1

3

ポップアップを作成するために使用しているコード内でこれを行う必要があると思います。コードのその部分を確認すると便利です。

また、イベントをサブスクライブするために現在推奨されている方法は、.on()jQueryメソッドを使用することです。

http://api.jquery.com/on/

$(display.window).on('keydown', function(e) {
    //Good stuff here
});

完全にテストされていません。これが正しい道を進むのに役立つことを願っています。


私に起こったもう一つのこと、あなたは本当にポップアップが必要ですか?それはポップアップブロッカーなどからのトラブルを求めています...あなたは素晴らしいモーダルウィンドウソリューションを実装する方が良いかもしれません、そしてあなたの「ウィンドウ」は同じDOMの一部になるでしょう、そしてそれはイベントリスナーの作成を簡単にするはずです。

jQueryUIには優れた「ダイアログ」ウィジェットがあります

http://jqueryui.com/dialog/

于 2013-03-12T01:58:58.763 に答える