【问题标题】:Javascript Window Function Pass "this" as ParameterJavascript窗口函数将“this”作为参数传递
【发布时间】:2013-09-14 13:06:11
【问题描述】:

我正在循环通过一个 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]

调用的函数

问候, 汤姆

【问题讨论】:

    标签: javascript jquery function window this


    【解决方案1】:

    我认为你正在寻找的是

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多