【发布时间】:2012-12-12 09:10:29
【问题描述】:
我想用 jQuery 实现简单的发布/订阅模式。 所以我在父页面上添加了一些这样的代码:
父页面:
$(document).bind('custom', function() { ... });
当我像这样在同一页面上触发时,它工作正常:
同一页面:
$(document).trigger('custom'); // Working.
但是当我在弹出页面上触发它时,它不起作用。
弹出页面:
opener.$(document).trigger('custom'); // Not working.
$(opener.document).trigger('custom'); // Not working.
如果我将事件绑定到 <body> 元素,它可以找到。
父页面:
$('body').bind('custom', function() { ... });
弹出页面:
opener.$('body').trigger('custom'); // Working.
为什么绑定到document 对弹出窗口不起作用?
【问题讨论】:
-
我认为因为如果您从父页面执行此操作,您将使用父页面中的
document变量。如果你这样做opener.$(opener.document).trigger('custom');会发生什么?
标签: javascript jquery publish-subscribe