国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery 事件的命名空間簡單了解

2024-05-06 15:56:03
字體:
來源:轉載
供稿:網友
用 jQuery 綁定和解綁事件監聽器都是非常簡單的,怎樣精確地解綁其中一個監聽器?我們需要了解一下事件的命名空間,感興趣的朋友不要錯過

用 jQuery 綁定和解綁事件監聽器都是非常簡單的。但是當你為一個元素的一個事件綁定了多個監聽器時,怎樣精確地解綁其中一個監聽器?我們需要了解一下事件的命名空間。

看下面這段代碼:

復制代碼 代碼如下:


$('#element')
.on('click', doSomething)
.on('click', doSomethingElse);


像上面這樣綁定事件監聽器,當元素被點擊時,doSomething 和 doSomethingElse 這兩個監聽器都會被觸發。這是使用 jQuery 的一個便利之處,可以隨時給元素的同一個事件添加不同的監聽器。不像用 onclick 那樣,新的監聽器會覆蓋舊的。

如果你想解綁其中一個監聽器,比如 doSomething,怎么做呢?

是這樣嗎?

復制代碼 代碼如下:


$('#element').off('click');


注意!上面這行代碼會把元素的 click 事件的所有監聽器全部解綁,而這并不是我們要的結果。

幸運的是 jQuery 的 .off() 方法可以接受第二個參數,就像 .on() 一樣。只要把監聽器函數的名字作為第二個參數傳入 .off() 方法,就能夠解綁指定的監聽器。

復制代碼 代碼如下:


$('#element').off('click', doSomething);


但是如果你不知道這個函數的名字,或者你用的是匿名函數:

復制代碼 代碼如下:


$('#element').on('click', function() {
console.log('doSomething');
});


怎樣才能精確地解綁某一個 click 事件監聽器呢?
先上代碼:

復制代碼 代碼如下:


$('#element').on('click.myNamespace', function() {
console.log('doSomething');
});


這里不只是把 click 事件作為參數傳入 .on() 方法,而是給 click 事件指定了一個命名空間,然后監聽了這個命名空間里的 click 事件。此時,即使監聽器是匿名函數,實際上它也是 “ 有名 ” 的了。現在你可以像下面這樣解綁某一個具體的命名空間里的事件監聽器了。

復制代碼 代碼如下:


$('#element').off('click.myNamespace');


這是 jQuery 為我們提供的又一個方便而強大的功能,它的內部實現肯定很有意思!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 徐水县| 赤壁市| 上高县| 淮北市| 上思县| 罗甸县| 罗田县| 芮城县| 会昌县| 通河县| 邛崃市| 三穗县| 方正县| 沾益县| 广丰县| 吴旗县| 驻马店市| 麟游县| 扶风县| 晋城| 库伦旗| 克拉玛依市| 新化县| 化州市| 读书| 西贡区| 汉寿县| 达拉特旗| 阿克陶县| 慈利县| 泌阳县| 崇阳县| 文昌市| 仁寿县| 双鸭山市| 本溪市| 理塘县| 长白| 海口市| 揭西县| 东乌珠穆沁旗|