Qual é o equivalente do método ‘trigger’ do jquery sem jquery?

Qual é o equivalente do método de trigger jQuery sem o jQuery ?

por exemplo, como faço algo como $('.blah').trigger('click'); sem jQuery ?

Por algum valor de “um equivalente muito malfeito”:

 var button = document.getElementById("thebutton") button.click() 

Nem todos os navegadores (por exemplo, Firefox!) Permitem events simulados dessa maneira! Usando onclick() só funciona se o evento estiver em linha, etc.

Por favor, veja a fonte jQuery e procure por “trigger:” (primeira correspondência) para ver todas as coisas complicadas feitas para “fazer funcionar” (uma boa parte é apenas em torno dos componentes internos do jQuery, outros frameworks têm exemplos muito mais simples ).

Codificação feliz.

event.initMouseEvent (“clique” …

Aqui está um exemplo:

 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"); 

em Javascript

 var event = document.createEvent("Event"); event.initEvent("click", false, true); document.getElementById("blah").dispatchEvent(event); 

é equivalente ao acionador do jQuery como abaixo

 $('#blah').trigger('click'); 

Aqui está o meu exemplo. Trabalhando perfeitamente em todas as situações

 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);