双击选择标记的事件。 Firefox的问题

时间:2015-04-29 04:18:54

标签: javascript html firefox select double-click

我有选择元素,当我双击时,我需要触发一个事件。 这是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中,我还添加了一个文本输入,以显示该事件适用于除select标签以外的字段,即使在FF

2 个答案:

答案 0 :(得分:2)

我不确定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;
            };
        });
    })();
});

答案 1 :(得分:0)

我认为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));   
            });
        } 
    });
});