使用jQuery避免鼠標雙擊的解決方案
更新時間:2013年08月21日 09:29:23 作者:
用戶雙擊DOM對象(例如按鈕和鏈接等)時,對于用戶交互一直是個麻煩的問題,如果你的元素點擊事件不止觸發(fā)一次,可以參考以下的解決方案
介紹
當用戶雙擊DOM對象(例如按鈕和鏈接等)時,對于用戶交互一直是個麻煩的問題。 幸運的是, jQuery 提供了一個相當棒的解決方法。 那就是.one()。
.one()這個方法是做什么的?
它附加了一個元素事件的處理程序并且每個元素只能運行一次事件處理器函數(shù)。
參數(shù)
.one( events [, selector ] [, data ], handler(eventObject) )
events
類型: String
•規(guī)定添加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。就像“click”和“keydown.myPlugin”一樣。
選擇器參數(shù)
參數(shù)類型: String
•選擇器字符串用于過濾出被選中的元素中能觸發(fā)事件的子元素
•如果傳null或者省略,當事件到達選定的元素時就會被觸發(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)鍵在于:
•當代碼執(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)系我。
當用戶雙擊DOM對象(例如按鈕和鏈接等)時,對于用戶交互一直是個麻煩的問題。 幸運的是, jQuery 提供了一個相當棒的解決方法。 那就是.one()。
.one()這個方法是做什么的?
它附加了一個元素事件的處理程序并且每個元素只能運行一次事件處理器函數(shù)。
參數(shù)
.one( events [, selector ] [, data ], handler(eventObject) )
events
類型: String
•規(guī)定添加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。就像“click”和“keydown.myPlugin”一樣。
選擇器參數(shù)
參數(shù)類型: String
•選擇器字符串用于過濾出被選中的元素中能觸發(fā)事件的子元素
•如果傳null或者省略,當事件到達選定的元素時就會被觸發(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)鍵在于:
•當代碼執(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)系我。
相關(guān)文章
jquery的ajax提交form表單的兩種方法小結(jié)(推薦)
下面小編就為大家?guī)硪黄猨query的ajax提交form表單的兩種方法小結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考2016-05-05Jquery Easyui驗證組件ValidateBox使用詳解(20)
這篇文章主要為大家詳細介紹了Jquery Easyui自定義下拉框組件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12jquery ajaxfileuplod 上傳文件 essyui laoding 效果【防止重復上傳文件】
點擊一次上傳, 當上傳操作結(jié)束后才能操作界面,實現(xiàn)方式是通過 ajaxfileuplod 上傳文件,需要的朋友參考下吧2018-05-05jQuery實現(xiàn)當拉動滾動條到底部加載數(shù)據(jù)的方法分析
這篇文章主要介紹了jQuery實現(xiàn)當拉動滾動條到底部加載數(shù)據(jù)的方法,結(jié)合實例形式分析了jQuery針對滾動事件的監(jiān)聽、響應(yīng)及數(shù)據(jù)加載相關(guān)操作技巧,需要的朋友可以參考下2019-01-01在jQuery ajax中按鈕button和submit的區(qū)別分析
昨天在使用jQuery ajax的post方法進行頁面?zhèn)髦?,無刷新獲取數(shù)據(jù)展示,弄了半天就是沒有效果,看了半天也沒有語法錯誤,最后才終于明白問題出在哪里2012-10-10jQuery支持動態(tài)參數(shù)將函數(shù)綁定到事件上的方法
這篇文章主要介紹了jQuery支持動態(tài)參數(shù)將函數(shù)綁定到事件上的方法,實例分析了兩種支持動態(tài)參數(shù)的函數(shù)綁定技巧,需要的朋友可以參考下2015-03-03自己動手制作jquery插件之自動添加刪除行的實現(xiàn)
我們常常會遇到這樣的情況,一個系統(tǒng)中有大量的需要對一個行進行復制添加,希望能夠進行批量的操作,這個時候,我們就可以考慮把它做成一個jquery插件了.2011-10-10jQuery setTimeout傳遞字符串參數(shù)報錯的解決方法
這篇文章主要介紹了jQuery setTimeout傳遞字符串參數(shù)報錯的解決方法,需要的朋友可以參考下2014-06-06