1

我希望storedata在动态更改对象事件 onclick 事件处理程序时访问一个名为的变量

function update_data(storedata)
{
    obj.onclick=function() {remover(this,storedata); };
}

无法访问内部函数中的 storedata。

当我尝试使用 alert(obj.onclick) 时,结果是 remover(this,storedata)。似乎变量没有被它的值取代!!

有任何想法吗?

4

2 回答 2

2

它被“替换”了。问题只是您尝试检查它的方式。

当你提醒一个函数时,你会得到一个函数的字符串化版本……它包括变量名,而不是每个变量的序列化。

如果您要实际调用该函数,则该变量将与您提供的值一起可用。

于 2012-04-24T15:28:24.367 回答
0

您需要将其附加为具有事件处理程序的对象的属性。当您 storedata 是一个字符串并且您使用的是 HTML5 时,您可以例如以这种方式完成它:

function update_data(storedata){
   obj.dataStoredata = storedata;
   obj.onclick = function(){
      remover(this);
    };
}

在您的remover函数内部,您可以简单地访问this.dataStoredata包含您的数据的函数。

于 2012-04-24T15:30:06.847 回答