我最近寫了一個函數來做到這一點到我的庫中,它可以在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