【问题标题】:Double click event for a select tag. issue with Firefox选择标签的双击事件。火狐的问题
【发布时间】:2015-10-29 21:39:30
【问题描述】:

我有一个 select 元素,当我 双击 元素时,我需要一个事件来触发。 这是html代码

<select  class='my_field' unselectable='on'  onselectstart='return false;' onmousedown='return false;'>
<option value="test">test</option>
</select> 

这里是 JavaScript 代码

 $( document ).ready(function() {


         $(".my_field").dblclick(function(e)
             {
             alert('double click');
             });

});

在 IE 或 Chrome 等浏览器中,此事件可以正常工作。 但不是在 Firefox 中

我准备了jsfiddle。在这个 jsfiddle 中,我还添加了一个文本输入,以表明该事件适用于选择标记以外的字段,即使在 FF 中

【问题讨论】:

    标签: javascript html firefox select double-click


    【解决方案1】:

    我不确定 dblclick 是否是标准事件。

    但您可以通过更多代码轻松实现它(未测试):

    $(document).ready(function(){
        (function(){ // Closure. Not needed if this is the only code.
            var dblClickMs = 1000; // One second. Adjust at your needings.
            var fld = $(".my_field");
            var t0 = 0;
    
            fld.on("click", function(){
                var t = (new Date()).getTime();
                if (t - t0 <= dblClickMs) {
                    alert('double click');
                } else {
                    t0 = t;
                };
            });
        })();
    });
    

    【讨论】:

    • 感谢您编写此代码。我刚刚用“小于或等于”(=),现在它可以工作了。如果没有其他答案将发布,我将接受您的解决方案并将其标记为答案。
    • 糟糕!当您不测试代码时,偶尔会发生这种情况:-D 已修复。谢谢。
    【解决方案2】:

    我认为 jQuery 是完全跨浏览器的,原生 javascript 似乎可以工作,至少你不需要模仿实际的双击事件。

    function doubleclick(){
        alert('double click');
    }
    
    $( document ).ready(function() {
    
        $(".my_field").each(function(){
    
            var element = this;
            if (this.addEventListener) {
                element.addEventListener('dblclick', doubleclick , false);
            } else {
                element.attachEvent('ondblclick', function() {
                    return(doubleclick.call(element, window.event));   
                });
            } 
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2011-06-29
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      相关资源
      最近更新 更多