什么是等效的jQuery的trigger
方法,无需jQuery的?
例如,如果$('.blah').trigger('click');
没有jQuery,我该怎么做?
什么是等效的jQuery的trigger
方法,无需jQuery的?
例如,如果$('.blah').trigger('click');
没有jQuery,我该怎么做?
event.initMouseEvent("点击"...
下面是一个例子:
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");
对于“非常劣质的等价物”的某些value:
var button = document.getElementById("thebutton")
button.click()
并非所有浏览器(例如 Firefox!)都允许以这种方式模拟事件!onclick()
仅当事件在线等时使用才有效。
请查看jQuery 源代码并搜索“触发器:”(第一个匹配项)以查看为“使其工作”所做的所有令人讨厌的事情(其中很大一部分只是围绕 jQuery 内部结构进行的,其他框架有更简单的示例)。
快乐编码。
在 JavaScript 中
var event = document.createEvent("Event");
event.initEvent("click", false, true);
document.getElementById("blah").dispatchEvent(event);
等效于 jQuery 触发器,如下所示
$('#blah').trigger('click');
这是我的例子。在所有情况下都能完美工作
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);