Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将事件绑定到弹出窗口?_Javascript_Jquery_Events - Fatal编程技术网

Javascript 如何将事件绑定到弹出窗口?

Javascript 如何将事件绑定到弹出窗口?,javascript,jquery,events,Javascript,Jquery,Events,我似乎无法将事件绑定到弹出窗口。正确的做法是什么?我知道你必须通过你想绑定事件的窗口,但我似乎在任何地方都找不到任何关于这方面的信息——在过去的一个小时里一直在搜索信息,但我甚至没有一个链接来显示我的努力。以下是我的几种尝试: // the popup window is referenced by "display.window" // #map is a <canvas> element occupying 100% of the new window // I'll just

我似乎无法将事件绑定到弹出窗口。正确的做法是什么?我知道你必须通过你想绑定事件的窗口,但我似乎在任何地方都找不到任何关于这方面的信息——在过去的一个小时里一直在搜索信息,但我甚至没有一个链接来显示我的努力。以下是我的几种尝试:

// 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
    });
});
//弹出窗口由“display.window”引用
//#map是占据新窗口100%的元素
//我将首先尝试在上下文中传递。。。
$(display.window,“#map”).keydown(函数(e){
//做事
});
//也许相反?
$(“#地图”,display.window).keydown(函数(e){
//做事
});
//如果我只是尝试将事件添加到窗口中,会怎么样?
$(display.window).keydown(函数(e){
//做事
});
//不,也许bind会成功
$(display.window).bind(函数(e){
//做事
});
//可能新窗口的DOM尚未加载?
$(display.window).ready(函数(){
$(此)。按键(功能(e){
//做事
});
});

这些都不起作用。我遗漏了什么?

我认为您需要在用于创建弹出窗口的代码中执行此操作,如果能看到代码的这一部分就好了

另外,当前推荐的订阅事件的方法是使用
.on()
jQuery方法

完全未经测试,希望这能帮助你走上正确的道路


我又想到了一件事,你真的需要弹出窗口吗?这是在找弹出窗口拦截器之类的麻烦。。。您最好实现一个好的模式窗口解决方案,然后您的“窗口”将是同一DOM的一部分,这将使创建事件侦听器变得很简单

jQueryUI有一个很好的“对话框”小部件


我认为您需要在用于创建弹出窗口的代码中执行此操作,如果能看到代码的这一部分就好了

另外,当前推荐的订阅事件的方法是使用
.on()
jQuery方法

完全未经测试,希望这能帮助你走上正确的道路


我又想到了一件事,你真的需要弹出窗口吗?这是在找弹出窗口拦截器之类的麻烦。。。您最好实现一个好的模式窗口解决方案,然后您的“窗口”将是同一DOM的一部分,这将使创建事件侦听器变得很简单

jQueryUI有一个很好的“对话框”小部件

对我有效(当心弹出窗口拦截器)使用
.on()
对我有效(当心弹出窗口拦截器),并且(顺便说一句)升级到最新版本的jQuery就成功了。谢谢(我的日程排得很紧,所以这真的很有帮助)将在1分钟内接受。使用
.on()
和(顺便说一句)升级到最新版本的jQuery就成功了。谢谢(我的日程安排很紧,所以这真的很有帮助)将在1分钟内接受。
$(display.window).on('keydown', function(e) {
    //Good stuff here
});