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パラメーターを使用してループ内の関数を呼び出しています。これが機能していない理由ですthisundefinedclick

于 2013-09-14T13:09:46.547 に答える