为什么我不能在删除命名空间事件处理程序后添加它?
Why can't I add a namespaced event handler after removing one?
在一个文件(我无法编辑)中,有一个添加了命名空间的事件:
$('p').on('ns.click',function(){
// do stuff
});
我想删除该处理程序并在同一名称空间中添加一个不同的处理程序。这是我所做的:
$('p').off('ns.click')
.on('ns.click',function(){
// do different stuff
});
这不有效。
如果没有命名空间,这将按预期工作(仅对 on
和 off
使用 'click'):
$('p').off('click')
.on('click',function(){
// do different stuff
});
此外,如果我添加一个具有 不同 命名空间的新处理程序,它会按预期工作:
$('p').off('ns.click')
.on('xyz.click',function(){
// do different stuff
});
为什么我不能删除命名空间处理程序然后重新添加一个新的?
http://api.jquery.com/on/ 命名空间设置在事件名称之后,而不是之前,所以应该是 click.ns
在一个文件(我无法编辑)中,有一个添加了命名空间的事件:
$('p').on('ns.click',function(){
// do stuff
});
我想删除该处理程序并在同一名称空间中添加一个不同的处理程序。这是我所做的:
$('p').off('ns.click')
.on('ns.click',function(){
// do different stuff
});
这不有效。
如果没有命名空间,这将按预期工作(仅对 on
和 off
使用 'click'):
$('p').off('click')
.on('click',function(){
// do different stuff
});
此外,如果我添加一个具有 不同 命名空间的新处理程序,它会按预期工作:
$('p').off('ns.click')
.on('xyz.click',function(){
// do different stuff
});
为什么我不能删除命名空间处理程序然后重新添加一个新的?
http://api.jquery.com/on/ 命名空间设置在事件名称之后,而不是之前,所以应该是 click.ns