Для запуска функции дважды щелкните Javascript onclick - PullRequest
0 голосов
/ 06 июня 2011

Javascript onclick нужно дважды щелкнуть для запуска функции.Мне нужно, чтобы он запускался с первого клика, это моя проблема.Я гуглил и искал в течение 2 дней, не найдя ответ, который работал или что я понял.

Код для javascript можно найти здесь: http://enji.se/windows8/js/script.js

И сайт, гдеЯ хочу, чтобы он работал: http://enji.se/windows8/

Это веб-сайт, похожий на Windows 8, который я пытаюсь создать.Он будет корректно отображаться только в Google Chrome и с разрешением выше 1265x820 и будет потрясающим при разрешении выше 1590x920

Заранее спасибо / enji

решено

Ответы [ 3 ]

7 голосов
/ 06 июня 2011

Проблема в вашем обработчике кликов boxBegin - событие щелчка получено и правильно передано вашему методу при первом клике, но внутри boxBegin вы переключаете поведение на значение box.style.display - в IE9 этоизначально "", что вызывает ваш закрытый код, а не нужный вам открытый код.

Измените boxBegin на:

function boxBegin() {
    var box = document.getElementById('boxBegin');
    if (!box.style.display || box.style.display == "none") {
        box.style.display = "block";
    }
    else {
        box.style.display = "none";
    }
}
1 голос
/ 18 апреля 2012

Я гуглил это, когда столкнулся с той же проблемой.

Я проверял, было ли window.location.hash определенное значение, а затем соответственно настраивал вкладки моего меню.

Для менярешение было таким же простым, как запуск функции задержки в 10 миллисекунд, которая затем запускала мои основные функции.

Проблема для меня возникла из сценария, который проверял наличие изменений при точном время внесения изменений, не до, не после, но в то же время.Это заставило меня дважды щелкнуть мышью, чтобы оно снова изменилось, и чтобы функция заметила это изменение во второй раз.

Помните, что всегда проще запустить сценарий с задержкой в ​​5 миллисекунд, когда ничего не происходиткажется, чтобы зарегистрировать изменения.Это помогло мне снова и снова

0 голосов
/ 06 июня 2011

Насколько я знаю, onclick регистрирует один клик?

Если для onclick требуется двойной щелчок, это может быть связано с браузером.

Также из документов MDC:

Событие click возникает, когда пользователь нажимает на элемент.Событие щелчка произойдет после событий mousedown и mouseup.

Также: простой тестовый пример @ JS Fiddle

...