2

我发现我的问题类似于这个问题。当我使用事件命名空间时,即使没有代理方法,它也不会显示命名空间。

HTML

<p>Get the click's namespace</p>
<button>Remove the click event</button>

JS

$(document).ready(function(){
  $("p").on("click.someNamespace",function(event){
    console.log(event.namespace);
  });
  $("button").click(function(){
    $("p").off("click.someNamespace");
  });
}); 

更详细:http ://codepen.io/ShawnHuang/pen/zaHui

还有一个代码是成功的,但是我不知道这两个代码有什么不同。 点击这里

谢谢您的回复!!

4

2 回答 2

3

根据文档和示例,我想说只有在手动触发事件并包含命名空间event.namespace时才定义:.trigger

这可能主要由希望根据所使用的事件命名空间以不同方式处理任务的插件作者使用。

$("p").trigger("test.something");

“正常”鼠标单击不绑定到任何特定的命名空间。您还可以在他们使用的 w3schools 示例中看到.trigger

于 2013-08-07T11:29:11.893 回答
3

你可以使用:

event.handleObj.namespace

http://jsfiddle.net/ZHp67/

不确定它是否被公开支持。

更新:相关文档可以在这里找到: https ://learn.jquery.com/events/event-extensions/#the-handleobj-object

于 2013-08-07T11:35:03.530 回答