在jQuery 1.9上触发全局事件

Triggering global events on jQuery 1.9

本文关键字:全局 事件 jQuery      更新时间:2023-09-26

给定以下HTML:

<div id="foo">
    <p>hello world</p>
</div>
<p id="message">Event not yet triggered</p>

以及以下JS:

$('#foo').bind('customEvent', function() {
    $('#message').text('Event triggered!');
});
$.event.trigger('customEvent');

我的p标记在jQuery 1.8(JSFiddle)中发生了更改,但在1.9(JSFiidle)中没有发生更改。

为什么会这样?我在1.9的变更日志中看不到任何相关内容。在1.9+中使用的最佳方法是什么?

如果您想要全局样式的事件,您可以在文档主体上触发事件。在更具体的元素上触发事件可能更有效,但这可能不是您想要的。

$(document.body).trigger('customEvent');

请参阅:http://jsfiddle.net/7c8M7/

另一种方法是使用专用的酒吧子图书馆,如:https://github.com/mroderick/PubSubJS