【问题标题】:onclick and ondblclick not working togetheronclick 和 ondblclick 不能一起工作
【发布时间】:2013-10-23 03:43:27
【问题描述】:

我的 jqgrid 标头中有一个主复选框

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

当我只放 onclick 或 ondblclick 时,会调用相应的方法。但是当我同时拥有 onclick 和 ondblclick 时,只会调用 onclick 方法。我什至不能双击复选框。如何处理单个复选框的 onclick 和 ondblclick?

以下是单击和双击的方法。我也给了超时。但我无法捕捉到双击事件。

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);

                 }

【问题讨论】:

  • 如果你想要它,然后跟随'Unobtrusive javascript'。
  • @Jai。你能详细解释一下吗?
  • @Riturajratan。我只问过这个问题,但那个解决方案不起作用。
  • 然后设置一个变量并通过这个变量打开弹出窗口,就像如果你点击设置它1并检查变量值如果===1然后首先打开弹出窗口,当再次点击时它会增加1然后检查是否===2 然后显示第二个弹出窗口然后重置变量

标签: javascript jquery checkbox jqgrid onclick


【解决方案1】:

快速参考:

不建议将处理程序同时绑定到 click 和 dblclick 相同元素的事件。触发的事件顺序各不相同 从浏览器到浏览器,其中一些之前接收到两个点击事件 dblclick 和其他只有一个。双击灵敏度(最大 被检测为双击的两次点击之间的时间)可能因 操作系统和浏览器,并且通常是用户可配置的。

jQuery 参考:http://api.jquery.com/dblclick/

因此,我认为最好重新考虑您的实际 UI,只使用一次单击事件和其他控件来满足您的需求;例如,在点击处理程序上打开一个包含可能操作的菜单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2014-01-07
    相关资源
    最近更新 更多