0

次のシナリオでは、html 要素のデータ属性に基づいて関数を呼び出す必要があります。

function func1(arg1){
    alert("func1");
}

function func2(arg2){
    alert("func2");
}

jQuery(document).on('click', '.func-class', function(){
  var funcName = jQuery(this).data('func-name');
  var funcArg = jQuery(this).data('func-arg');      
  //Need to call funcName(funcArg) here
});

HTML:

<div data-func-name="func1" data-func-arg="arg1" class="func-class">Func1</div>
<div data-func-name="func2" data-func-arg="arg2" class="func-class">Func2</div>

同じのJSFiddle: http://jsfiddle.net/E4HeT/

4

3 に答える 3

0

次のようにすることができます

window[funcName](funcArg)

ただし、jQuery.ready関数ではプライベートであるため、たとえば(ウィンドウオブジェクトで行ったように)オブジェクトに設定して関数の参照を取得する必要があります

于 2013-09-23T09:13:58.183 に答える
0
$('.func-class').click(function(){

    var toCallArg = $(this).data('func-arg');        
    var toCall = function(toCallArg){            
        //your code
    };
    toCall(toCallArg);
});    
于 2013-09-23T09:56:53.343 に答える