在jQuery中,当您设置事件时,您可以命名它。这意味着(如果您愿意),例如,您可以拥有多个调整大小窗口事件,并且能够单独取消绑定它们,而不必取消绑定该选择器上的所有事件。
jQuery命名空间的示例:
$(window).on('scroll.myScrollNamespace, function() ...
我想知道如何在纯JavaScript中创建命名空间。这显然不起作用:
window.addEventListener('resize.myScrollNamespace', function() ...
答案 0 :(得分:8)
如果不是匿名函数:
myScroll
使用命名函数:
addEventListener
然后你可以使用:
removeEventListener
确保您在范围内function myScroll() {
// ...
}
window.addEventListener('resize', myScroll);
window.removeEventListener('resize', myScroll);
。当您在不同于添加它们的地方删除侦听器时,您可能应该在某个外部范围内定义您的函数,并在public partial class tKeyValuePair : object, System.ComponentModel.INotifyPropertyChanged
{
private string keyField;
private string valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(DataType="NMTOKEN")]
public string key
{
get
{
return this.keyField;
}
set
{
this.keyField = value;
this.RaisePropertyChanged("key");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string Value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
this.RaisePropertyChanged("Value");
}
}
中使用它们的名称,方法与svcutil http://server/service?wsdl /nologo /d:C:\temp\ /enableDataBinding /wrapped
中的相同:
XmlNode test = new XmlCDataSection("text in cdata");
如果您希望能够一次删除多个侦听器,则必须将它们存储在某个数组中,并为每个元素调用removeEventListener。