window.open打开子页面后,在子页面触发父页面绑定的事件, trigger方法触发不了

有一个父页面a.html,给a页面的某个div元素绑定一个自定义事件,例如

$("#d1").bind("myEvent",function(){
alert("sssss");
});

在父页面使用trigger方法触发该事件都是正常的。
问题来了......
1、现在我用a页面的window.open方法打开了一个子页面,在子页面中找到父页面的那个div元素,并使用trigger方法触发上面绑定的自定义事件,但是始终触发不了。
$("#"+window.opener.document.getElementById("d1")).trigger("myEvent");

2、奇怪的是将上面事件只有换为click事件,在子页面中结果是可以触发的,其他js事件和自定义事件都触发不了。

阅读 7.2k
3 个回答

window.opener.$("#d1")

1)子页面和父页面是2个不同的context
2)$("#"+window.opener.document.getElementById("d1"))能查到DOM元素吗?
3)用原生的fireEvent/dispatchEvent方法试试手工触发事件

新手上路,请多包涵

我刚刚也遇到了这个问题,不知道为什么,很苦恼

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进