Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как вызвать события onmouseup onmousedown программно (https://javascript.ru/forum/events/53531-kak-vyzvat-sobytiya-onmouseup-onmousedown-programmno.html)

Большевик 07.02.2015 20:17

Как вызвать события onmouseup onmousedown программно
 
Всем привет!

Есть кнопка, при нажатии и отпускании которой вызываются разные функции:

<button id="pedal" class="pedal" onmousedown="onPedal()" onmouseup="offPedal()" onmouseout="">
</button>


Мне понадобилось нажимать эту кнопку без изпользования мышки (она в это время изпользуется для нажатия на другие кнопки).

Я привязал эти события к нажатию клавиши пробела:

document.onkeydown = function (e) {
            if (e.keyCode == 32) {
                  onPedal();
            }
        }

document.onkeyup = function (e) {
            if (e.keyCode == 32) {
                  offPedal();
            }
        }


Теперь при нажатии и отпускании пробела вызываются соответствующие нужные функции.
Но при этом визуально кнопка разумеется не нажимается. А по задумке должна.

Вопрос: можно ли всё-таки вызвать именно сами события нажатия и отпускания кнопки?
(именно отдельно нажатия и отпускания, а не клик)

danik.js 08.02.2015 06:42

Нет, нельзя. Через css стилизуй кнопку. И напиши стили для "нажатого состояния", через класс .pressed или .active например. По нажатию на пробел добавляй этот класс, по отпусканию - убирай.
button:active, button.active{
    /* стили для нажатого состояния */
}


Часовой пояс GMT +3, время: 09:47.