我似乎无法将事件绑定到弹出窗口。正确的方法是什么?我知道你必须通过窗口--你想把这个事件绑定到--但是我似乎在任何地方都找不到这方面的任何信息--在过去的一个小时里,我一直在搜索信息,但我甚至没有一个链接来显示我的努力。以下是我的几次尝试:
// 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
});
});
这些都不管用。我遗漏了什么?
发布于 2013-03-12 01:58:58
我认为在创建弹出窗口所用的代码中需要这样做,很高兴看到这部分代码。
此外,当前推荐的订阅事件的方法是使用.on()
jQuery方法。
http://api.jquery.com/on/
$(display.window).on('keydown', function(e) {
//Good stuff here
});
完全未经测试,希望这能帮助你走上正确的道路。
我想到的另一件事是,你真的需要弹出窗口吗?从弹出式阻断剂那里自找麻烦等等.您最好实现一个好的模式窗口解决方案,然后您的“窗口”将是同一个DOM的一部分,这将使创建事件侦听器变得非常简单。
jQuery用户界面有一个很好的“对话框”小部件
http://jqueryui.com/dialog/
https://stackoverflow.com/questions/15351937
复制相似问题