在jquery中click與dblclick都是一個點擊事件,但是在dblclick事件是在click事件上重複點擊了,這樣如果我們同時的話就衝突了,下面我們來看分析。
在雙擊事件(dblclick),觸發的兩次點擊事件(click)中,第一次的點擊事件(click)會被封鎖掉,但第二次不會。
<script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("p").slideToggle(); }); }); </script> </head> <body> <p>这是一个段落。</p> <button>切换</button> </body>
也就是說雙擊事件(dblclick)會回傳一次點選事件(click)結果和一次雙擊事件(dblclick) 結果。而不是一次雙擊事件(dblclick)結果和兩次點擊事件結果(click)。
dblclick()當雙擊元素時,會發生 dblclick 事件。當滑鼠指標停留在元素上方,然後按下並放開滑鼠左鍵時,就會發生一次 click。在很短的時間內發生兩次 click,即是一次 double click 事件。
<script type="text/javascript"> $(document).ready(function(){ $("button").dblclick(function(){ $("p").slideToggle(); }); }); </script> </head> <body> <p>这是一个段落。</p> <button>请双击此处</button> </body>
如此這般的話,只需消滅掉多餘的一次點擊事件(click),這個問題就解決了。
var timer = null; $('button').live('click', function(event){ timer && clearTimeout(timer); timer = setTimeout(function(){ console.log(event.type); },300); }).live('dblclick', function(event){ timer && clearTimeout(timer); console.log(event.type); });
以上是jquery事件dblclick與click衝突的解決方法分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!