1

我无法成功地将 jQuery 事件侦听器附加到 type 的元素上<object>,并让它接收在该事件上触发的任何事件。

因此:

<object></object>

使用 JavaScript:

$('object').on('foo', function(evt, data){ alert(data) });
$('object').trigger('foo', 'object-on-object');

如果我有完全相同的代码$('body'),那么它工作正常。<body>另外,如果我在, 和上监听事件$('object').trigger(),那么我确实得到了事件。

我有一个jsFiddle可以证明这一点。在其中您将看到该bar事件没有导致输出,但两个foo事件都有。

4

1 回答 1

0

所以,答案似乎是否定的。根据这个线程,存在与绑定事件相关的问题,或者可能使用 jQuery 和<object>元素做任何有趣的事情。

解决方案似乎是让事件在其他地方冒泡。$(document)似乎是一个有效的选择,因此您可以执行以下操作:

$(document).on('foo', 'object', {data: data}, handler);

$('object').trigger('foo');

这对于我想要的东西来说是一种错误的方式(我希望能够告诉消费者监听插件元素上的事件),但它工作得很好。您无法在代码中修复的内容,请在文档中修复。

于 2012-05-25T11:14:09.257 回答