动态创建一个函数,在其中注入局部变量值

Create a function on the fly injecting local var values inside

本文关键字:在其中 注入局 变量值 函数 一个 创建 动态      更新时间:2023-09-26

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

我现在有一个创建连接的函数。他们收到:

  • 要连接的对象
  • 两个变量: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 ()
{. getelementbyid (IDX +"_"+ id)。

但是,由于IDX =" sec1"和id="3",我希望看到:

handler = function ()
{. getelementbyid("sec1 +"_"+"3")。

这可能吗?我该怎么做呢?

修复由Function构造函数

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

}