0

我正在循环通过一个 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)也返回未定义。如何将此作为参数传递给使用 window[$FUNCTIONAME] 调用的函数

问候,汤姆

4

1 回答 1

0

我想你正在寻找的是

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

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

于 2013-09-14T13:09:46.547 回答