JQuery将字符串识别为函数动态回调

时间:2013-12-09 18:45:44

标签: javascript jquery ajax function

我有一个简单的jquery函数,我试图让ajax动态运行。当这样调用时,该函数可以正常工作

function widget1() { 
    console.log("test");
}

$(function () {                 
  $('#thisbutton').bind('click', function() {
  var htmlString = $("#uid").html();
     $.ajax({
      type: "GET",
      url: "/getappobj",
      data: {id:htmlString},
      success: function(data) {
        widget1();
      }
    });
});});

但如果我尝试动态调用函数,我会得到一个错误,即字符串不是函数

$(function () {                 
  $('#thisbutton').bind('click', function() {
  var htmlString = $("#uid").html();
     $.ajax({
      type: "GET",
      url: "/getappobj",
      data: {id:htmlString},
      success: function(data) {
        var findit = data[0].widget;//returns "widget1"
        findit();
      }
    });
});});

我已经尝试过各种我能想到的方式。使用jquery-1.9.1.min.js。

1 个答案:

答案 0 :(得分:3)

如果widget1是全局的,您可以调用window[findit]()按名称从窗口对象中获取该函数。

您正在尝试将字符串作为函数调用,这当然不起作用。您需要使用该字符串来查找要执行的函数。