91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery 事件的命名空間

發布時間:2020-06-19 22:52:07 來源:網絡 閱讀:373 作者:hudidit 欄目:web開發

用 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 事件監聽器呢?該了解一下 jQuery 的事件命名空間了(jQuery namespaced events)!

先上代碼:

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

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

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

這是 jQuery 為我們提供的又一個方便而強大的功能,它的內部實現肯定很有意思!

編譯自:CSS-Tricks

更多WEB技術,歡迎訪問:胡作菲為

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巍山| 巴林右旗| 新巴尔虎左旗| 衡南县| 讷河市| 绥中县| 安吉县| 余姚市| 房产| 安乡县| 南安市| 建昌县| 于田县| 民丰县| 鄂伦春自治旗| 榆树市| 凤凰县| 乌海市| 昌都县| 西宁市| 江源县| 金乡县| 正镶白旗| 金寨县| 岐山县| 霍林郭勒市| 蕉岭县| 南投市| 新源县| 津南区| 定日县| 团风县| 湘乡市| 长兴县| 历史| 隆昌县| 荔波县| 河源市| 绥芬河市| 卓资县| 盐亭县|