clearTimeout не работает в событии ondblclick в FireFox - PullRequest
2 голосов
/ 17 декабря 2009

Я пытаюсь получить элемент, который поддерживает как щелчок, так и двойной щелчок по нему. Но следующий пример работает в IE, но не работает в FireFox 3.5.6:

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

Это просто не очищает тайм-аут, поэтому оповещение (1) срабатывает. Кто-нибудь знает в чем проблема? Как я могу иметь события щелчка и двойного щелчка отдельно в FireFox?

Ответы [ 3 ]

3 голосов
/ 17 декабря 2009

Когда вы дважды щелкаете в Firefox, вы получаете два события щелчка, а затем событие dblclick. Итак, вы устанавливаете два таймера и очищаете один. Очистка таймера по событию щелчка должна работать:

<button onclick="clearTimeout(c);c=setTimeout('alert(1);',1000);" ondblclick="clearTimeout(c);alert(2);">Test</button>
0 голосов
/ 04 января 2010

Я не понимаю. Это все еще не работает. Я имею в виду, если вы поместите clerTimeout в событие onclick, событие onclick не будет работать, так как вы остановите его, прежде чем закончите: S На самом деле я не понимаю, как вы могли бы сказать "Это решило проблему" ?? Просто скопируйте тот код, который вы написали, и вы поймете, что ничего не происходит ...: /

0 голосов
/ 17 декабря 2009

Вы действительно не должны вставлять свой JavaScript в ваш HTML. Для этого я бы предложил использовать библиотеку JavaScript типа jQuery jQuery решит проблемы с кросс-браузерными событиями, которые у вас возникают!

$(document).ready(function() {
    var c;
    $("button").click(function() {
        c = setTimeout(function() {
            alert(1);
        }, 1000);
    }).dblclick(function() {
        clearTimeout(c);
        alert(2);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...