创建一个函数,在里面注入局部var值

时间:2014-03-13 19:24:59

标签: javascript

我需要动态编写函数,同时避免使用全局变量。它们将与事件监听器“连接”。

我目前有一个创建连接的功能。他们收到:

  • 我要连接的对象
  • 两个变量:IDX和id我必须识别一些我想要使用的元素。

到目前为止,这是我的代码:

create_fun = function (obj, IDX,id) { 
    var f = function () {document.getElementById(IDX+"_"+id).display = "block";} 
    obj.addEventListener('click', f,false);
}

此代码运行正常。我在Chrome事件监听器面板中看到了与我想要的对象相关的点击事件。

问题:IDX和id是变量,因为它们不是全局变量,所以它们是未定义的。

在chrome Eventlistener检查中,我看到:

  

handler = function()
  {document.getElementById(IDX +“_”+ id).display =“block”;}

但是,当IDX =“sec1”和id =“3”时,我想看看:

  

handler = function()
  {document.getElementById(“sec1 +”_“+”3“)。display =”block“;}

这可能吗?我该怎么做?

1 个答案:

答案 0 :(得分:0)

修复由Function构造函数

给出
var f = new Function ( "document.getElementById('"+IDX+"_"+id+"').style.display = 'block';" );
obj.addEventListener('click', f,false);

}