單擊和雙擊事件的沖突處理示例代碼
更新時(shí)間:2014年04月03日 16:42:15 作者:
這篇文章主要介紹了單擊和雙擊事件的沖突處理方法,需要的朋友可以參考下
先上代碼:
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(function () {
$("div").bind("click.a", function () { //單擊事件
$("body").append("<p>click事件</p>");
})
$("div").bind("dblclick.a", function () { //雙擊事件
$("body").append("<p>dblclick事件</p>");
})
$("div").bind("mouseover.a", function () { //鼠標(biāo)經(jīng)過元素的事件
$("body").append("<p>mouseover事件</p>");
})
$("div").bind("mouseout.a", function () { //鼠標(biāo)移出元素的事件
$("body").append("<p>mouseout事件</p>");
})
})
</script>
</head>
<body>
<div>jQuery命名空間</div>
</body>
效果如圖所示,我雙擊的同時(shí),會(huì)先觸發(fā)兩個(gè)單擊事件,這是怎么回事?還有,如果我不想在雙擊的時(shí)候觸發(fā)
單擊事件,而僅僅只是觸發(fā)雙擊事件,那該怎么解決?我也有試過在雙擊的時(shí)候,先把單擊事件解綁,
可這樣一來,單擊事件又不能用了。。。
后來在論壇問別人,終于有了答案。那就是使用setTimeout()這個(gè)方法設(shè)置單擊事件的時(shí)間間隔,這個(gè)時(shí)間間隔一般
設(shè)為300ms,這樣在雙擊的時(shí)候,由于雙擊的時(shí)間間隔小于300ms,所以就不會(huì)產(chǎn)生click事件,而僅僅只是產(chǎn)生
dblclick事件。在雙擊事件里面,需要用clearTimeout()函數(shù)清除click事件的處理。代碼如下:
<script type="text/javascript" language="javascript">
$(function () {
var timer = null;
$("div").bind("click.a", function () { //單擊事件
clearTimeout(timer);
timer = setTimeout(function () { //在單擊事件中添加一個(gè)setTimeout()函數(shù),設(shè)置單擊事件觸發(fā)的時(shí)間間隔
$("body").append("<p>click事件</p>");
}, 300);
})
$("div").bind("dblclick.a", function () { //雙擊事件
clearTimeout(timer); //在雙擊事件中,先清除前面click事件的時(shí)間處理
$("body").append("<p>dblclick事件</p>");
})
$("div").bind("mouseover.a", function () { //鼠標(biāo)經(jīng)過元素的事件
$("body").append("<p>mouseover事件</p>");
})
$("div").bind("mouseout.a", function () { //鼠標(biāo)移出元素的事件
$("body").append("<p>mouseout事件</p>");
})
})
</script>
如此,這個(gè)問題就解決了!
復(fù)制代碼 代碼如下:
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(function () {
$("div").bind("click.a", function () { //單擊事件
$("body").append("<p>click事件</p>");
})
$("div").bind("dblclick.a", function () { //雙擊事件
$("body").append("<p>dblclick事件</p>");
})
$("div").bind("mouseover.a", function () { //鼠標(biāo)經(jīng)過元素的事件
$("body").append("<p>mouseover事件</p>");
})
$("div").bind("mouseout.a", function () { //鼠標(biāo)移出元素的事件
$("body").append("<p>mouseout事件</p>");
})
})
</script>
</head>
<body>
<div>jQuery命名空間</div>
</body>
效果如圖所示,我雙擊的同時(shí),會(huì)先觸發(fā)兩個(gè)單擊事件,這是怎么回事?還有,如果我不想在雙擊的時(shí)候觸發(fā)
單擊事件,而僅僅只是觸發(fā)雙擊事件,那該怎么解決?我也有試過在雙擊的時(shí)候,先把單擊事件解綁,
可這樣一來,單擊事件又不能用了。。。

后來在論壇問別人,終于有了答案。那就是使用setTimeout()這個(gè)方法設(shè)置單擊事件的時(shí)間間隔,這個(gè)時(shí)間間隔一般
設(shè)為300ms,這樣在雙擊的時(shí)候,由于雙擊的時(shí)間間隔小于300ms,所以就不會(huì)產(chǎn)生click事件,而僅僅只是產(chǎn)生
dblclick事件。在雙擊事件里面,需要用clearTimeout()函數(shù)清除click事件的處理。代碼如下:
復(fù)制代碼 代碼如下:
<script type="text/javascript" language="javascript">
$(function () {
var timer = null;
$("div").bind("click.a", function () { //單擊事件
clearTimeout(timer);
timer = setTimeout(function () { //在單擊事件中添加一個(gè)setTimeout()函數(shù),設(shè)置單擊事件觸發(fā)的時(shí)間間隔
$("body").append("<p>click事件</p>");
}, 300);
})
$("div").bind("dblclick.a", function () { //雙擊事件
clearTimeout(timer); //在雙擊事件中,先清除前面click事件的時(shí)間處理
$("body").append("<p>dblclick事件</p>");
})
$("div").bind("mouseover.a", function () { //鼠標(biāo)經(jīng)過元素的事件
$("body").append("<p>mouseover事件</p>");
})
$("div").bind("mouseout.a", function () { //鼠標(biāo)移出元素的事件
$("body").append("<p>mouseout事件</p>");
})
})
</script>
如此,這個(gè)問題就解決了!
相關(guān)文章
jquery實(shí)現(xiàn)可旋轉(zhuǎn)可拖拽的文字效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)可旋轉(zhuǎn)可拖拽的文字效果代碼,涉及jquery響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-01-01jQuery實(shí)現(xiàn)簡單計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07使用jQuery實(shí)現(xiàn)的擲色子游戲動(dòng)畫效果
大家一定都玩過擲色子的游戲,今天我給大家分享的是如何使用jQuery來實(shí)現(xiàn)擲色子的動(dòng)畫效果,通過jQuery的animate()自定義動(dòng)畫函數(shù)并結(jié)合CSS背景圖片切換實(shí)現(xiàn)的動(dòng)畫效果2014-03-03jQuery滾動(dòng)條美化插件nicescroll簡單用法示例
這篇文章主要介紹了jQuery滾動(dòng)條美化插件nicescroll簡單用法,結(jié)合實(shí)例形式簡單分析了jQuery滾動(dòng)條美化插件jquery.nicescroll.js的引入與使用技巧,非常簡單實(shí)用,需要的朋友可以參考下2018-04-04