2011-01-18 3 views
4

Мне нужно смоделировать событие click или mouse. Я пробовал разные вещи, но lib, который я использую, кажется, не реагирует на него или не отвечает, а только на определенных браузерах. ATM i do $ ('# target'). Val ($ ('# target2'). Val()); который работает на firefox и opera. Не работает хром, IE8 и сафари.Как смоделировать событие click или keydown?

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

+0

Что вы имеете в виду под «LIBS»? Какая библиотека? Что вы ожидаете, когда вы установите текст textarea? '$ ('# target'). val ($ ('# target2'). val());' не имеет ничего общего с событием click или keydown, это только устанавливает значение чего-то равным значению чего-то другого. . –

+0

@ Shadow Wizard: да, и поскольку я упоминаю библиотеку, которую я использую, она не принимает событие. Мне нужно активировать событие для правильного функционирования кода. –

+0

да, для чего? Вы не ответили ни на один из моих вопросов, и ни один из них не был Да/Нет .. –

ответ

3

Вы можете использовать модель 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/

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

+0

demo не работает – qwertymk

+0

Это не сработало, но KeyboardEvent сделал :). Принято! 'var evt = document.createEvent (" KeyboardEvent "); evt.initKeyboardEvent («keypress», true, true, null, false, false, false, false, 0, 0); element.dispatchEvent (evt); ' –

+0

@qwertymk: Это для меня. Во всех браузерах, кроме IE (8) –

2

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

+0

no jQuery tag здесь :( – jAndy

+2

OPs использование '.val()' подразумевает jQuery. –

+0

@jAndy, что-то похожее на код jQuery в Вопрос: –

Смежные вопросы