为什么我不能在删除之后添加命名空间事件处理程序?

时间:2015-11-02 21:16:19

标签: javascript jquery javascript-namespaces

在一个文件中(我无法编辑),有一个添加了命名空间的事件:

$('p').on('ns.click',function(){
   // do stuff
});

我想删除该处理程序并在同一名称空间中添加另一个处理程序。这就是我所做的:

$('p').off('ns.click')
      .on('ns.click',function(){
            // do different stuff
      });

工作。

如果没有命名空间,则按预期工作(仅对onoff使用'click'):

$('p').off('click')
      .on('click',function(){
            // do different stuff
      });

另外,如果我添加一个带有不同命名空间的新处理程序,它会按预期工作:

$('p').off('ns.click')
      .on('xyz.click',function(){
            // do different stuff
      });

为什么我不能删除命名空间处理程序然后重新添加新处理程序?

1 个答案:

答案 0 :(得分:1)

http://api.jquery.com/on/名称空间在事件名称之后设置,而不是之前,因此它应该是click.ns