Javascript窗口函数将“this”作为参数传递

时间:2013-09-14 13:06:11

标签: javascript jquery function window this

我正在循环一个JSON对象,我想根据JSON对象中指定的函数设置字段的点击次数。通过window []调用的函数将被参数化而不是硬编码。

           for (var key in JSONOBJ) {

               func = window["minRule"](this);

               $('#'+ key).click(func);

           }

被调用的函数是

function minRule(elem){


 alert(elem.name);


}

我希望它适用于

<input type='text' name='FIELDINJSONOBJECT' id='FIELDINJSONOBJECT'/>

然而,当我刷新页面时,由于某种原因正在调用该函数,并且没有绑定到该单击。警报(elem.name)也返回undefined。如何将此参数作为参数传递给使用window [$ FUNCTIONAME]

调用的函数

此致 汤姆

1 个答案:

答案 0 :(得分:0)

我认为你在寻找的是

$.each(JSONOBJ, function(key, value){
    $('#'+ key).click(function(){
        window["minRule"](value);
    });
})

在您的情况下,您在循环中使用参数minRule调用函数this,其中它指向当前函数范围及其返回的值(在本例中为undefined as click处理程序),这就是它无法正常工作的原因