萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> jQuery防止click雙擊多次提交及傳遞動態函數或多參數

jQuery防止click雙擊多次提交及傳遞動態函數或多參數

 這篇文章主要介紹了jQuery防止click雙擊多次提交及傳遞動態函數方法,需要的朋友可以參考下

今天是寫的是關於JQ的雙擊事件防止多次提交的問題,並且通過函數可以批量定義,通能性更強了,通過方法動態綁定元素的事件。而且可以動態傳遞函數名或者多參數等(本實例只傳遞函數名通過Eval調用)。    我們都知道在jQuery的事件綁定中,執行雙擊事件(dblclick)時能觸發兩次單擊事件(click)。即一個標簽元素(如div等),如果元素同時綁定了單擊事件(click)和雙擊事件(dblclick),那麼執行單擊事件(click)時,不會觸發雙擊事件(dblclick), 執行雙擊事件(dblclick)時卻會觸發兩次單擊事件(click)。    先看一下點擊事件的執行順序:    單擊(click):mousedown,mouseout,click;  雙擊(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick;    在雙擊事件(dblclick),觸發的兩次單擊事件(click)中,第一次的單擊事件(click)會被屏蔽掉,但第二次不會。也就是說雙擊事件(dblclick)會返回一次單擊事件(click)結果和一次雙擊事件(dblclick) 結果。而不是一次雙擊事件(dblclick)結果和兩次單擊事件結果(click)。    如此這般的話,只需消滅掉多余的一次單擊事件(click),這個問題就解決了。    效果如下圖:  http://images.cnitblog.com/i/554071/201404/010846579687197.png  源代碼如下:   代碼如下: <!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>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  <title>jQuery防止click雙擊多次執行及傳遞動態函數方法</title>  <script type="text/javascript" src="http://www.86y.org/js/jquery.min.js"></script>  </head>    <body>  <div id="show">顯示測試結果:</div>  <div style="background:#f60;color:#fff;width:80px;padding:10px 20px;" id="div" onclick="ss1('DIV事件')">點擊我吧</div>    <input type="button" value="按鈕一" id="but1" onclick="ss2('INPUT事件')"/>  <script language="javascript">    function std (obj,vs){  var TimeFn = null;  var funs=$(obj).attr("onclick");  $(obj).click(function() {  clearTimeout(TimeFn);  TimeFn = setTimeout(function(){  eval(funs);  clearTimeout(TimeFn);  }, 400);  });    $(obj).dblclick(function() {  clearTimeout(TimeFn);  });  $(obj).removeAttr("onclick");  }    var ss1=function(s){$("#show").html("DIV顯示測試結果:"+s);alert("a");};//div調用的方法  var ss2=function(s){$("#show").html("INPUT顯示測試結果:"+s);alert("b");};//input調用的方法    //通過方法動態綁定元素的事件  std("#div","div");  std("#but1","button1");  </script>  </body>  </html> 
copyright © 萬盛學電腦網 all rights reserved