最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js不完美解決click和dblclick事件沖突問題

 更新時間:2012年07月16日 01:16:18   作者:  
當某個元素,如:div,同時綁定了click事件和dblclick事件,而這兩個事件又要處理相對獨立的業(yè)務,也就是click的時候不能觸發(fā)dblclick,dblclick的時候不能觸發(fā)click
情況描述
  當某個元素,如:div,同時綁定了click事件和dblclick事件,而這兩個事件又要處理相對獨立的業(yè)務,也就是click的時候不能觸發(fā)dblclick,dblclick的時候不能觸發(fā)click。在實際測試中發(fā)現(xiàn),當dblclick的時候,總會出現(xiàn)1次click。下文將要解決的就是這個問題。
情況分析
  首先我們要清楚click和dblclick的執(zhí)行順序,測試過程略,下面是測試結(jié)果:
  click:mousedown -- mouseup -- click
  dblclick:mousedown -- mouseup -- click -- mousedown -- mouseup -- click -- dblclick
  由此看來,在dblclick觸發(fā)之前,實際上是執(zhí)行了2次click,而第一次的click是會屏蔽掉的(為什么?好把,我也不知道)。
解決方案
  最先想到的是否可以停止事件,但發(fā)現(xiàn)瀏覽器并未提供相應方法,如果自己去實現(xiàn)難度太大,因為單擊事件所關(guān)聯(lián)的行為必須做成是可以被cancel的才行。
  于是考慮用延遲,也是我唯一能想到的解決辦法,利用setTimeout()來延遲完成click事件的處理,然后在需要屏蔽click的時候用clearTimeout()來停止。
具體代碼
復制代碼 代碼如下:

var test = (function(){
var clickText = 'click<br>';
var dblclickText = 'dblclick<br>';
var timer = null;
return {
click: function(){
clearTimeout(timer);
timer = setTimeout(function(){
$('body').append(clickText);
}, 300);
},
dblclick: function(){
clearTimeout(timer);
$('body').append(dblclickText);
},
init: function(){
$(function(){
$('div').click(test.click).dblclick(test.dblclick);
});
}
}
})();
test.init();

html代碼
復制代碼 代碼如下:

<div style="width:100px;height:100px;background:red;text-align:center;line-height:33px;-moz-user-select:none;-khtml-user-select:none;user-select:none">click<br>or<br>dblclick</div>

后續(xù)
  文章標題里就說了,是不完美的,因為windows下,控制面板里是可以調(diào)鼠標的雙擊速度的(其他系統(tǒng)不清楚),所以我設(shè)置系統(tǒng)設(shè)置的雙擊速度較慢,則上面那個demo就不生效了。所以300毫秒只是一個大概的。
作者:胡尐睿

相關(guān)文章

  • requireJS模塊化實現(xiàn)返回頂部功能的方法詳解

    requireJS模塊化實現(xiàn)返回頂部功能的方法詳解

    這篇文章主要介紹了requireJS模塊化實現(xiàn)返回頂部功能的方法,結(jié)合實例形式詳細分析了requireJS的使用步驟及返回頂部功能的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Vue3基于countUp.js實現(xiàn)數(shù)字滾動的插件

    Vue3基于countUp.js實現(xiàn)數(shù)字滾動的插件

    本文主要介紹了Vue3基于countUp.js實現(xiàn)數(shù)字滾動的插件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • JS實現(xiàn)九宮格拼圖游戲

    JS實現(xiàn)九宮格拼圖游戲

    這篇文章主要為大家詳細介紹了JS實現(xiàn)九宮格拼圖游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • js jquery ajax的幾種用法總結(jié)(及優(yōu)缺點介紹)

    js jquery ajax的幾種用法總結(jié)(及優(yōu)缺點介紹)

    本篇文章只要介紹了js jquery ajax的幾種用法總結(jié)(及優(yōu)缺點介紹),需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • JavaScript數(shù)學對象之數(shù)字進制轉(zhuǎn)換

    JavaScript數(shù)學對象之數(shù)字進制轉(zhuǎn)換

    這篇文章主要為大家講解了JavaScript數(shù)學對象——數(shù)字進制轉(zhuǎn)換的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • js 模塊化CommonJS AMD UMD CMD ES6規(guī)范詳解

    js 模塊化CommonJS AMD UMD CMD ES6規(guī)范詳解

    這篇文章主要為大家介紹了js 模塊化CommonJS AMD UMD CMD ES6規(guī)范詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • JS forEach和map方法的用法與區(qū)別分析

    JS forEach和map方法的用法與區(qū)別分析

    這篇文章主要介紹了JS forEach和map方法的用法與區(qū)別,結(jié)合實例形式分析了forEach和map方法的功能、原理、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-02-02
  • JS全局變量和局部變量最新解析

    JS全局變量和局部變量最新解析

    這篇文章主要介紹了JS全局變量和局部變量最新解析的相關(guān)知識,本文給給大家補充js刪除局部變量的代碼,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-06-06
  • javascript代碼優(yōu)化的8點總結(jié)

    javascript代碼優(yōu)化的8點總結(jié)

    本篇文章給大家分享了關(guān)于javascript代碼優(yōu)化的8點總結(jié),希望我們整理的內(nèi)容能夠幫助到大家。
    2018-01-01
  • 心揚JS分頁函數(shù)代碼

    心揚JS分頁函數(shù)代碼

    通過js實現(xiàn)分頁的代碼,一般情況下需要指定頁數(shù),腳本之家以前也發(fā)布過一些,大家結(jié)合下即可。
    2010-09-09

最新評論

金阳县| 金阳县| 海淀区| 莱州市| 南投市| 大宁县| 西乌珠穆沁旗| 遵化市| 浦城县| 通江县| 古浪县| 台州市| 榆社县| 岗巴县| 治多县| 湘乡市| 含山县| 海晏县| 洛隆县| 从化市| 塔河县| 石屏县| 台安县| 太康县| 阳原县| 宁国市| 博乐市| 林州市| 宽甸| 尉氏县| 双江| 吉林省| 梅州市| 昭苏县| 运城市| 荃湾区| 谢通门县| 布拖县| 武城县| 长寿区| 高尔夫|