我想将动态变量用作动态javascript函数参数。但它将错误视为未定义的变量。
$.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();
});
}
});
请告诉我这里的确切问题是什么?
答案 0 :(得分:1)
我猜错误发生在show_edit_form
函数中。你必须在那里传递一些东西,在你的照顾下
var edit = "<img src='../../dist/img/icon/edit.png' " +
...
"onclick='show_edit_form(" + this.id + ")'>";
答案 1 :(得分:0)
在下面的代码中,您传递edit
作为show_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()
方法会更好。