我最近写了一个函数来做到这一点到我的库中,它可以在GitHub存储库here中找到。
它是完全跨浏览器并触发选择器引擎返回的元素上的指定事件。我相信你可以从中提取你需要的代码。
如果不是,这里是你需要的。用元素替换元素。并键入事件的类型,在这种情况下,click
。
// Check for createEventObject
if(document.createEventObject){
// Trigger for Internet Explorer
trigger = document.createEventObject();
element.fireEvent('on' + type, trigger);
}
else {
// Trigger for the good browsers
trigger = document.createEvent('HTMLEvents');
trigger.initEvent(type, true, true);
element.dispatchEvent(trigger);
}
这是一个示例实现。
function simulateEvent(element, type) {
// Check for createEventObject
if(document.createEventObject){
// Trigger for Internet Explorer
trigger = document.createEventObject();
element.fireEvent('on' + type, trigger);
}
else {
// Trigger for the good browsers
trigger = document.createEvent('HTMLEvents');
trigger.initEvent(type, true, true);
element.dispatchEvent(trigger);
}
}
如果点击不起作用,那么可以使用onmousedown/onmouseup作为解决方法。如果没有这些,标准拖放'拖放库不起作用。 – 2011-03-01 20:17:31
所以 - 让我直截了当 - 你想跨浏览器的JavaScript - 并不想使用jQuery?你要么为失败而努力,要么努力工作。 – wiifm 2011-03-01 20:19:16
为什么eval(div.onclick)不适合你? – 2011-03-01 20:31:07