一直都認為在Web開發中,雙擊事件都是少至又少地使用,直到最近項目需要,要在一個按鈕上綁定單擊與雙擊兩件事件。一開始也覺得不就是給按鈕綁下兩個事件而已罷了……只是後來才明白,是我想得太簡單,在雙擊事件觸發的同時也會觸發單擊的~
經過一番研究後,終於利用JS中「setTimeout」延時執行方法的辦法,將點選延遲300毫秒執行才解決了,程式碼如下:
複製代碼代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http ://www.w3.org/1999/xhtml"><head>
<title></title>
<mce:script src="jquery-1.6.min.js" mce_src="jquery-1.6.min.js" type="text/javascript"></mce:script>
<mce:script type="text/javascript">
<!--
$(function () {
var num = 0;
var timeFunName = null;
$("button").bind("click", function () {
// 取消上次延遲未執行的方法
clearTimeout(timeFunName);
// 延時300毫秒執行點選
timeFunName = setTimeout(function () {
num++;
$("textarea").val($("textarea").val() + "第" + num + "次事件,事件名稱:按/n");
}, 300); }).bind("dblclick", function () {
// 取消上次延遲未執行的方法
clearTimeout(timeFunName);
num++;
$("textarea").val($("textarea").val() + "第" + num + "次事件,事件名稱:雙擊/n");
});
});
// --></mce:script>
</head>
<body>
<textarea rows="20" cols="50"></textarea><button type="button">提交</button></body></html>