我正在根据ajax调用的JSON响应动态创建一个html表,如下所示。我想将可点击事件与某些行相关联,这些行允许我对这些json对象进行一些后期处理。但是,我无法通过函数调用传递json对象,因为它没有将其拾取。你能帮帮我吗?如果我传递json对象的属性,我能够实现这一点,但我希望传递整个对象。
$.get(url, { param: ID},
function(data){
$.each(data, function(index, product) {
$('<tr>').appendTo($body)
.append($('<td>').text(product.ID))
.append($('<td>').text(product.firstName))
.append($('<td>').text(product.lastName))
.append($('<td>').text(product.email))
.append($('<td>')
.append($('<a href=\"javascript:deleteProduct(' + product.ID + ');\">')
.append($('<img src=\"/images/delete.png\">'))))
.append($('<td>')
.append($('<a href=\"javascript:editProduct(' + product + ');\">')
.append($('<img src=\"/images/edit.png\">'))));
});
我无法在此处调用editProduct(product)func调用,但deleteProduct(id)可以正常工作。
感谢。
答案 0 :(得分:1)
product是您尝试将其作为字符串放置的对象,这意味着该函数将如下所示:editProduct(Object [object])或类似的。
快速解决方案是在将其放入字符串之前使用类似stringify的方法。
但更好的解决方案是删除内联js,在使用它们之前创建元素,使用.click()函数来设置功能,然后将它们附加到tr。