2011-03-10 135 views
0

我有一個onclick事件處理函數一樣的Javascript事件覆蓋

​​,嵌入在HTML中。該插件功能,使得它的主要工作後,都有可能覆蓋onclick事件處理程序,如:

function add(id,x,y) { 
element = getElementById("id"); 
z = y*x; //just an example 
element.onclick = 'add('+id+','+x+','+z+');'; 
} 

,所以下一次當的onclick被稱爲附加(ID,X,Z);應該運行。但不幸的是,它不是這樣工作的。任何人都有解決這個問題的方法?

+1

你應該考慮通過'this'作爲參數,而不是'this.id';如果元素沒有ID,會發生什麼?然後你可以像下面這樣修改'add()':function add(element,x,y){z = y * x; element.onclick ='add(this,'+ x +','+ z +');'; – Matt 2011-03-10 11:33:50

回答

2

這條線:

element = getElementById("id"); 

應該是:

element = document.getElementById(id); // without quotes! 
+0

更具體地說,它得到的是具有實際名稱「id」的元素,而不是「id」的值'參數。 – 2011-03-10 11:30:32

+0

我刪除了。現在仍在工作:S – Oblivion 2011-03-10 11:45:07

+0

Firebug說什麼? – Andreas 2011-03-10 12:10:46