2010-04-03 42 views

回答

4

觸發點擊事件上的按鈕和其他投入要素相當容易,他們有一個click()方法:

elementA.onclick = function() { elementB.click(); } 

這是與其他事件或元素稍微複雜的是不支持click方法,你需要使用fireEventdispatchEvent觸發事件,根據瀏覽器:

elementA.onclick = function() { 
    var elementB = document.getElementById("elementB"); 
    if ("dispatchEvent" in elementB) { 
     var evt = document.createEvent("MouseEvents"); 
     evt.initMouseEvent("click", true, true, window, 
      0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     elementB.dispatchEvent(evt); 
    } 
    else if ("fireEvent" in elementB) 
     elementB.fireEvent("onclick"); 
} 
+0

但是,如果你不知道什麼當前類型的事件被連接到一個元素都仍然要轉移他們到另一個元素。元素是否跟蹤某些內部數據結構中的附加事件? – jayarjo 2010-12-22 09:51:39

+0

@jayarjo:不。你可以編寫自己的方法來附加事件處理程序,並保持對元素,函數和事件類型的引用。 jQuery爲您使用其方法附加的事件執行此操作。 – 2010-12-22 10:22:35