2016-10-10 88 views
-5

我想使用動態變量作爲動態javascript函數參數。但它給錯誤作爲未定義的變量。jQuery - 使用變量作爲函數參數

$.ajax({ 
    url: 'get_category_list.php', 
    dataType: 'JSON', 
    success: function (data) { 
     var i = 1; 
     $.each(data, function() { 
      var id = this.id; 
      //console.log(id); 
      var edit = "<img src='../../dist/img/icon/edit.png' " + 
      "style='border: 1px solid #999637; " + 
      "border-radius: 2px' " + 
      "title='Edit' " + 
      "onclick='show_edit_form(id)'>"; 
      catTable.row.add([ 
       i++, 
       this.name, 
       this.level, 
       this.create_date, 
       edit 
      ]).draw(); 
     }); 
    } 
}); 

請告訴我這裏有什麼確切的問題?

+3

如果你至少告訴我們是什麼問題,它是在哪一行,我們就知道從哪裏開始? – adeneo

+1

哪個變量?哪個錯誤? – Bergi

+0

確切的問題是,你的問題不清楚 – Weedoze

回答

1

我猜show_edit_form功能發生錯誤。你必須有傳東西,在您的關懷是

var edit = "<img src='../../dist/img/icon/edit.png' " + 
      ... 
      "onclick='show_edit_form(" + this.id + ")'>"; 
0

在下面的代碼,你通過editshow_edit_form()參數:

var edit = "<img src='../../dist/img/icon/edit.png' " + 
      "style='border: 1px solid #999637; " + 
      "border-radius: 2px' " + 
      "title='Edit' " + 
      "onclick='show_edit_form(edit)'>"; 
            ^^^^ 

也許你的意圖是元素本身作爲參數傳遞。但是你的代碼不會,它甚至不能訪問edit變量的內聯定義。最簡單的解決方案是將參數字段留空。因爲您在處理點擊事件時可以使用this訪問它。

另一方面,正如其他人指出的評論,最好使用jQuery's .click()方法。