我希望在动态更改对象事件onclick事件处理程序时访问名为storedata
的变量
function update_data(storedata)
{
obj.onclick=function() {remover(this,storedata); };
}
无法在内部函数中访问storedata。
当我尝试使用alert(obj.onclick)时,结果就是remover(this,storedata)。似乎变量没有被它的值取代!!
任何想法?
答案 0 :(得分:2)
它被“替换”了。问题就在于你试图检查它的方式。
当你提醒一个函数时,你得到一个函数的字符串化版本......并且包含变量名而不是每个变量的序列化。
如果您实际调用该函数,该变量将与您提供的值一起使用。
答案 1 :(得分:0)
您需要将它作为无论如何都有事件处理程序的对象的属性附加。当你的storeata是一个字符串而你正在使用HTML5时,你可以这样做:
function update_data(storedata){
obj.dataStoredata = storedata;
obj.onclick = function(){
remover(this);
};
}
在remover
功能的内部,您只需访问包含数据的this.dataStoredata
即可。