namespaces - 自定义 jQuery 事件的处理程序,无论其命名空间如何?

标签 namespaces jquery

我很好奇以下内容......

jQuery 允许我们定义自定义事件(例如 myevent)并触发这些事件。还可以通过添加命名空间(例如 myevent.namesp)来添加额外的粒度层。

我想知道是否可以为具有相同名称的所有自定义事件编写事件处理程序,但无论其命名空间如何

例如,如果我有以下代码:

$('input').on('myevent.namesp', function(e) {
    alert('The immediate event fired');
});

$('body').on('myevent', function() {
    alert('Caught the delegated event');
});

$('input').click(function() {
    $(this).trigger('myevent.namesp');
});

“立即事件”被触发,但委托(delegate)的事件处理程序没有被触发(因为它没有使用特定的命名空间进行绑定(bind))。是否可以做类似的事情

$('body').on('myevent.*', function() { /* Handler for all 'myevent' events */ });

我知道以这种方式使用 .on() 是不可能的,但你明白了。

您可以在此处查看示例:http://jsfiddle.net/VwU68/

最佳答案

命名空间事件使它们更加具体;如果事件触发器没有命名空间,则无论命名空间如何,该类型的所有事件都将被触发。因此,您必须更改 .trigger 以使用 'myevent'

但是,您可以拥有多个命名空间并触发最高级别的命名空间(显然;我什至不知道这一点):http://jsfiddle.net/VwU68/2/ -- 您也许可以利用它来发挥自己的优势。

关于namespaces - 自定义 jQuery 事件的处理程序,无论其命名空间如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806224/

相关文章:

php - 默认 spl_autoload_register() 命名空间行为,在 root 之外使用 index.php

c# - 如何在 C# 中为 XPath 添加命名空间?

javascript - 带有 jquery Accordion 的 AngularJS ng-table 固定 header

javascript - 如何从 orgChart 中的框中删除标题

javascript - 如何为我的 jquery slider 制作交互式元素符号

php - 为什么null可以写成反斜杠?

xml - 使用 xml namespace 进行 XSLT 转换 我想我错过了一些东西

php - 在层次结构目录结构中使用 PHP 命名空间错误

Javascript如何计算数组内的值?

javascript - 为什么当用户在其外部单击时此 div 不隐藏?