使用jQuery避免鼠標(biāo)雙擊的解決方案
更新時間:2013年08月21日 09:29:23 作者:
用戶雙擊DOM對象(例如按鈕和鏈接等)時,對于用戶交互一直是個麻煩的問題,如果你的元素點擊事件不止觸發(fā)一次,可以參考以下的解決方案
介紹
當(dāng)用戶雙擊DOM對象(例如按鈕和鏈接等)時,對于用戶交互一直是個麻煩的問題。 幸運(yùn)的是, jQuery 提供了一個相當(dāng)棒的解決方法。 那就是.one()。
.one()這個方法是做什么的?
它附加了一個元素事件的處理程序并且每個元素只能運(yùn)行一次事件處理器函數(shù)。
參數(shù)
.one( events [, selector ] [, data ], handler(eventObject) )
events
類型: String
•規(guī)定添加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。就像“click”和“keydown.myPlugin”一樣。
選擇器參數(shù)
參數(shù)類型: String
•選擇器字符串用于過濾出被選中的元素中能觸發(fā)事件的子元素
•如果傳null或者省略,當(dāng)事件到達(dá)選定的元素時就會被觸發(fā)
數(shù)據(jù)
參數(shù)類型: 任何類型
•該參數(shù)的值在事件觸發(fā)將會傳遞給的事件處理函數(shù)
事件處理函數(shù)
參數(shù)類型:函數(shù)類型
•事件觸發(fā)時應(yīng)該調(diào)用的函數(shù)
•false 也是允許的因為它就是簡單return false;函數(shù)的簡寫形式
舉例
$("#saveBttn").one("click", function () {
alert("This will be displayed only once.");
});
或者
$("body").one("click", "#saveBttn", function () {
alert("This displays if #saveBttn is the first thing clicked in the body.");
});上述代碼關(guān)鍵在于:
•當(dāng)代碼執(zhí)行結(jié)束時,點擊id為saveBtn的元素將會彈出警告框
•之后的點擊將沒有任何反映
•這等同于 ==>
$("#saveBttn").on("click", function (event) {
alert("This will be displayed only once.");
$(this).off(event);
});
換句話說這和在綁定事件處理函數(shù)中顯式調(diào)用off()作用是一樣的
了解更多請點擊
jQuery .one()
總結(jié)
上面所提到的方法是jQuery 1.7的新特性,所以如果你的元素點擊事件不止觸發(fā)一次,這可能是個解決方案哦。多么神奇的方法啊,如有任何疑問請聯(lián)系我。
當(dāng)用戶雙擊DOM對象(例如按鈕和鏈接等)時,對于用戶交互一直是個麻煩的問題。 幸運(yùn)的是, jQuery 提供了一個相當(dāng)棒的解決方法。 那就是.one()。
.one()這個方法是做什么的?
它附加了一個元素事件的處理程序并且每個元素只能運(yùn)行一次事件處理器函數(shù)。
參數(shù)
.one( events [, selector ] [, data ], handler(eventObject) )
events
類型: String
•規(guī)定添加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。就像“click”和“keydown.myPlugin”一樣。
選擇器參數(shù)
參數(shù)類型: String
•選擇器字符串用于過濾出被選中的元素中能觸發(fā)事件的子元素
•如果傳null或者省略,當(dāng)事件到達(dá)選定的元素時就會被觸發(fā)
數(shù)據(jù)
參數(shù)類型: 任何類型
•該參數(shù)的值在事件觸發(fā)將會傳遞給的事件處理函數(shù)
事件處理函數(shù)
參數(shù)類型:函數(shù)類型
•事件觸發(fā)時應(yīng)該調(diào)用的函數(shù)
•false 也是允許的因為它就是簡單return false;函數(shù)的簡寫形式
舉例
復(fù)制代碼 代碼如下:
$("#saveBttn").one("click", function () {
alert("This will be displayed only once.");
});
或者
復(fù)制代碼 代碼如下:
$("body").one("click", "#saveBttn", function () {
alert("This displays if #saveBttn is the first thing clicked in the body.");
});上述代碼關(guān)鍵在于:
•當(dāng)代碼執(zhí)行結(jié)束時,點擊id為saveBtn的元素將會彈出警告框
•之后的點擊將沒有任何反映
•這等同于 ==>
復(fù)制代碼 代碼如下:
$("#saveBttn").on("click", function (event) {
alert("This will be displayed only once.");
$(this).off(event);
});
換句話說這和在綁定事件處理函數(shù)中顯式調(diào)用off()作用是一樣的
了解更多請點擊
jQuery .one()
總結(jié)
上面所提到的方法是jQuery 1.7的新特性,所以如果你的元素點擊事件不止觸發(fā)一次,這可能是個解決方案哦。多么神奇的方法啊,如有任何疑問請聯(lián)系我。
相關(guān)文章
jQuery設(shè)置Easyui校驗規(guī)則(推薦)
本文給大家介紹jquery設(shè)置easyui校驗規(guī)則的實現(xiàn)代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-11-11
JQuery+Bootstrap 自定義全屏Loading插件的示例demo
這篇文章主要介紹了JQuery+Bootstrap 自定義全屏Loading插件,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-07-07

