jQuery - 不是解绑事件
jQuery - not unbinding events
这个有点奇怪。我有一个插件,我在其中将所有可用的事件名称存储在一个数组中,因此当我销毁实例时,我解除了所有绑定事件的绑定。我选了一个事件名称只是为了举例。
this.destroy = function( callback ){
//jqElm.off('hood.changed.customiser');
events.forEach(function(eventName){
//console.log('hood.changed.customiser|' + eventName + '|');
jqElm.off(eventName);
});
};
以上根本行不通。如果我删除第一个注释掉的直接解除绑定,它确实适用于该事件!
如果我取消注释掉第二个,我会得到以下列表:
hood.changed.customiser|loading.customiser|
hood.changed.customiser|loaded.customiser|
hood.changed.customiser|inserted.customiser|
hood.changed.customiser|hood.changed.customiser|
hood.changed.customiser|hoodPrimaryFabric.changed.customiser|
hood.changed.customiser|hoodSecondaryFabric.changed.customiser|
hood.changed.customiser|collar.changed.customiser|
hood.changed.customiser|ears.changed.customiser|
hood.changed.customiser|earPrimaryFabric.changed.customiser|
hood.changed.customiser|earSecondaryFabric.changed.customiser|
hood.changed.customiser|tusks.changed.customiser|
hood.changed.customiser|tusksPrimaryFabric.changed.customiser|
hood.changed.customiser|antlers.changed.customiser|
hood.changed.customiser|antlersPrimaryFabric.changed.customiser|
hood.changed.customiser|tail.changed.customiser|
如您所见,列表中的第 3 个是有问题的事件名称,但它并未解除绑定!
任何人都可以照亮这个吗?此致
我不知道为什么它不起作用,但查看你的日志我可以看到你的所有事件都有命名空间 customiser
,所以只需使用它来注销事件而不是数组
所以
this.destroy = function (callback) {
jqElm.off('.customiser');
};
这个有点奇怪。我有一个插件,我在其中将所有可用的事件名称存储在一个数组中,因此当我销毁实例时,我解除了所有绑定事件的绑定。我选了一个事件名称只是为了举例。
this.destroy = function( callback ){
//jqElm.off('hood.changed.customiser');
events.forEach(function(eventName){
//console.log('hood.changed.customiser|' + eventName + '|');
jqElm.off(eventName);
});
};
以上根本行不通。如果我删除第一个注释掉的直接解除绑定,它确实适用于该事件!
如果我取消注释掉第二个,我会得到以下列表:
hood.changed.customiser|loading.customiser| hood.changed.customiser|loaded.customiser| hood.changed.customiser|inserted.customiser| hood.changed.customiser|hood.changed.customiser| hood.changed.customiser|hoodPrimaryFabric.changed.customiser| hood.changed.customiser|hoodSecondaryFabric.changed.customiser| hood.changed.customiser|collar.changed.customiser| hood.changed.customiser|ears.changed.customiser| hood.changed.customiser|earPrimaryFabric.changed.customiser| hood.changed.customiser|earSecondaryFabric.changed.customiser| hood.changed.customiser|tusks.changed.customiser| hood.changed.customiser|tusksPrimaryFabric.changed.customiser| hood.changed.customiser|antlers.changed.customiser| hood.changed.customiser|antlersPrimaryFabric.changed.customiser| hood.changed.customiser|tail.changed.customiser|
如您所见,列表中的第 3 个是有问题的事件名称,但它并未解除绑定!
任何人都可以照亮这个吗?此致
我不知道为什么它不起作用,但查看你的日志我可以看到你的所有事件都有命名空间 customiser
,所以只需使用它来注销事件而不是数组
所以
this.destroy = function (callback) {
jqElm.off('.customiser');
};