簡體   English   中英

如何將事件綁定到彈出窗口?

[英]How do I bind an event to a popup window?

我似乎無法將事件綁定到彈出窗口。 正確的做法是什么? 我知道您必須通過您想要將事件綁定到的窗口,但是我似乎無法在任何地方找到有關此信息的信息-過去一個小時一直在搜索信息,但我什至沒有一個鏈接以顯示我的努力。 這是我的各種嘗試:

// 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
    });
});

這些都不起作用。 我想念什么?

我認為您需要在用於創建彈出窗口的代碼中執行此操作,很高興看到代碼的這一部分。

另外,當前推薦的訂閱事件的方法是使用.on() jQuery方法。

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

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

完全未經測試,希望這有助於您走上正確的道路。


我發生的另一件事,您真的需要彈出窗口嗎? 這就要求彈出窗口阻止程序之類的麻煩……您可能最好實施一個不錯的模態窗口解決方案,然后您的“窗口”將成為同一DOM的一部分,這將使創建事件偵聽器變得微不足道。

jQuery UI有一個不錯的“對話框”小部件

http://jqueryui.com/dialog/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM