2011-03-10 130 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