2013-10-15 71 views
1

我有一個mastercheckbox在我的jqGrid頭的onclick和onfocus此工作不在一起

<input type="checkbox" id="masterCheckBox" ondblclick="onDoubleClick(event,assetSearchResults,this)" onclick="masterCheckBoxChecked(event,assetSearchResults,this)"/> 

當我把唯一的onclick或onfocus此,相應的方法獲取調用。但是,當我同時使用onclick和ondblclick時,只會調用onclick方法。我甚至無法雙擊複選框。如何處理單個複選框的onclick和ondblclick?

以下是singleclick和doubleclick的方法。我也給了超時。但我無法捕捉到雙擊事件。

var timer=; 

    function onDoubleClick(e,table,obj){ 
      clearTimeout(timer); 
      alert('Double click'); 
      } 

      function masterCheckBoxChecked(e,table,obj){ 
       document.getElementById("masterCheckBox").checked=true; 

       if (timer) clearTimeout(timer); 
       timer = setTimeout(function() { alert('Single'); }, 150); 
       alert(timer); 

       } 
+0

如果你想要它,然後按照'不顯眼的JavaScript'。 – Jai

+0

http://stackoverflow.com/questions/19373994/how-to-catch-single-and-double-click-on-a-checkbox/19374061#comment28711138_19374061 –

+0

@Jai。你能詳細解釋一下嗎? – Sanjay

回答

4

快速參考:

是不可取的處理程序綁定到兩個點擊DBLCLICK爲同一元素 事件。觸發事件的順序從瀏覽器到瀏覽器的變化爲 ,其中一些在dblclick之前接收到兩個點擊事件,而其他事件僅在 之間。雙擊靈敏度(檢測爲雙擊的點擊之間的最大時間間隔爲 )可能因操作系統和瀏覽器而異,並且通常可由用戶配置。

jQuery的參考:http://api.jquery.com/dblclick/

所以我覺得,如果你只使用一個click事件和其他控件來處理您的需求重新考慮你的實際UI它的更好;例如在點擊處理程序上打開包含可能操作的菜單。