Что эквивалентно jQuery 'trigger' метод без jquery?
какой эквивалент метода jQuery trigger
без jQuery?
например, как я могу сделать что-то вроде $('.blah').trigger('click');
без jQuery?
Ответы
Ответ 1
Для некоторого значения "очень дрянной эквивалент":
var button = document.getElementById("thebutton")
button.click()
Не все браузеры (например, Firefox!) позволяют имитировать события таким образом! Использование onclick()
работает только в том случае, если событие находится в строке и т.д.
Пожалуйста, смотрите источник jQuery и найдите "trigger:" (первое совпадение), чтобы увидеть все ненужные вещи, сделанные для "заставить его работать" (это немного похоже на внутреннюю часть jQuery, другие структуры имеют гораздо более простые примеры).
Счастливое кодирование.
Ответ 2
event.initMouseEvent("click"...
Вот пример:
function simulateClick(elId) {
var evt;
var el = document.getElementById(elId);
if (document.createEvent) {
evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
(evt) ? el.dispatchEvent(evt) : (el.click && el.click());
}
var foo = document.getElementById("hey");
foo.onclick = function () {alert("bar");}
simulateClick("hey");
Ответ 3
Вот мой пример. Хорошо работать во всех ситуациях.
var d=document.createEvent("MouseEvents"),
c=document.createEvent("MouseEvents"),
p=document.createEvent("MouseEvents");
d.initMouseEvent("mousedown",true,true,window,0,0,0,0,0,false,false,false,false,0,null);
c.initMouseEvent("click" ,true,true,window,0,0,0,0,0,false,false,false,false,0,null);
p.initMouseEvent("mouseup" ,true,true,window,0,0,0,0,0,false,false,false,false,0,null);
var element =// some selector;
element.dispatchEvent(d);
element.dispatchEvent(c);
element.dispatchEvent(p);
Ответ 4
в Javascript
var event = document.createEvent("Event");
event.initEvent("click", false, true);
document.getElementById("blah").dispatchEvent(event);
эквивалентен для запуска jQuery, как показано ниже
$('#blah').trigger('click');