首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >没有绑定到DOM元素的jQuery中的自定义事件?

没有绑定到DOM元素的jQuery中的自定义事件?
EN

Stack Overflow用户
提问于 2009-10-12 08:13:03
回答 6查看 24.8K关注 0票数 50

我很好奇是否可以在jQuery中创建一个不绑定到DOM元素的自定义事件。

与YUI相比,我更喜欢jQuery,但YUI中有一件事是我喜欢的,那就是创建自定义事件,并能够在以后订阅它们。

例如,这会创建一个绑定到变量而不是DOM元素的事件:

var myevent = new YAHOO.util.CustomEvent("mycustomevent");

我一直在阅读的所有jQuery示例和文档都需要类似以下内容:

$('body').bind('mycustomevent', function(){
    //do stuff
});
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-12 08:21:29

您可以在jQuery中触发如下自定义全局事件:

jQuery.event.trigger('mycustomevent', [arg1, arg2, arg3]);

这些将在任何元素上触发。

由于jQuery是围绕DOM对象构建的,因此您必须将事件绑定到DOM对象。您可能也可以找到一些方法来绑定没有元素的事件(您确实做到了),但这不是一种受支持的方法。

正如您在自己的答案中所写的,如果您不想将事件绑定到单个页面元素,则可以将事件绑定到全局DOM对象:

$(document).bind('mycustomevent', function (e, arg1, arg2, arg3) { /* ... */ });
票数 43
EN

Stack Overflow用户

发布于 2009-10-12 21:01:39

对于未来的读者来说,这样做是相当简单的。在发布了我的问题后,我做了进一步的研究。不幸的是,其他评论者没有一个是正确的。

要绑定自定义事件:

$().bind('mycustomevent', function(){
    //code here
});

此外,您还可以将数据构建到稍后可访问的事件对象中:

$({mydata:'testdata'}).bind('mycustomevent',function(){
    //code here
});
票数 6
EN

Stack Overflow用户

发布于 2010-12-16 01:42:58

在jQuery 1.4.4中删除了对非dom元素的绑定。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1553342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档