clearTimeout在FireFox中的ondblclick事件中不起作用

时间:2009-12-17 02:23:59

标签: javascript firefox

我正在尝试使用支持点击和双击的元素。但是以下示例适用于IE,但在FireFox 3.5.6中不起作用:

<button onclick="c=setTimeout('alert(1);',1000);" ondblclick="clearTimeout(c);alert(2);">Test</button>

它只是不清除超时,因此警告(1)被触发。 有谁知道这是什么问题? 如何在FireFox中单独点击和双击事件?

3 个答案:

答案 0 :(得分:3)

在Firefox中双击时,您将获得两个单击事件,然后是一个dblclick事件。所以你要设置两个定时器并清除一个定时器。清除点击事件上的计时器应该有效:

<button onclick="clearTimeout(c);c=setTimeout('alert(1);',1000);" ondblclick="clearTimeout(c);alert(2);">Test</button>

答案 1 :(得分:0)

你真的不应该在HTML中内嵌你的javascript。我建议使用像jQuery这样的JavaScript库。 jQuery将解决您正在使用的跨浏览器事件问题!

$(document).ready(function() {
    var c;
    $("button").click(function() {
        c = setTimeout(function() {
            alert(1);
        }, 1000);
    }).dblclick(function() {
        clearTimeout(c);
        alert(2);
    });
});

答案 2 :(得分:0)

我不明白。它仍然无法正常工作。我的意思是,如果你在onclick事件中放入一个clerTimeout,onclick事件将无法工作,因为你在完成之前就停止了它:S 其实我看不出你怎么说“这解决了问题”?只是尝试复制你编写的代码,你会发现没有任何事情发生......:/