Как симулировать событие нажатия или нажатия клавиши? - PullRequest
4 голосов
/ 18 января 2011

Мне нужно смоделировать событие щелчка или мыши.Я пробовал разные вещи, но библиотека, которую я использую, кажется, не отвечает или отвечает, но только в определенных браузерах.ATM я делаю $ ('# target'). Val ($ ('# target2'). Val ());который работает на Firefox и Opera.Не работает на Chrome, IE8 и Safari.

Я мог бы добавить события в библиотеки, но я не знал бы, какое событие добавить (или как это сделать правильно).В любом случае, как мне решить это?в основном я устанавливаю текстовую область с помощью .val (), и библиотека, похоже, не воспринимает это событие.

Ответы [ 3 ]

3 голосов
/ 18 января 2011

Вы можете использовать модель событий DOM Level 2, например:

function simulateClick(element) {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  cb.dispatchEvent(element);
}

Демо: http://www.jsfiddle.net/4yUqL/66/

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

2 голосов
/ 18 января 2011

.trigger('click') в jQuery может достичь того, что вы пытаетесь сделать. Он запустит все обработчики, прикрепленные к событию click.

1 голос
/ 28 мая 2011

В случае, если кто-то столкнется с этим в поиске независимого от фреймворка способа запуска любого события HTML и мыши, посмотрите здесь: Как смоделировать щелчок мыши с помощью JavaScript?

...