命名空间vanilla JavaScript事件,如jQuery

时间:2015-06-12 10:31:45

标签: javascript jquery events javascript-events

在jQuery中,当您设置事件时,您可以命名它。这意味着(如果您愿意),例如,您可以拥有多个调整大小窗口事件,并且能够单独取消绑定它们,而不必取消绑定该选择器上的所有事件。

jQuery命名空间的示例:

$(window).on('scroll.myScrollNamespace, function() ...

我想知道如何在纯JavaScript中创建命名空间。这显然不起作用:

window.addEventListener('resize.myScrollNamespace', function() ...

1 个答案:

答案 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。

请参阅EventTarget.removeEventListener()文档。