0
我想将一个产品对象从$ .each(函数内)循环传递给闭包外的函数。
当我CONSOLE.LOG产品(对象),它给了我:
“未捕获的ReferenceError:产品没有定义”
这里是我的代码,请告诉我,我错过了什么:
function openMenu(url){
// get feed from API
$.getJSON(url, function(storedata) {
$('#live-menu').addClass('active');
$('.live-menu-content').addClass('active');
// each the feed data
$.each(storedata, function(categoryName, productObject){
// category title and open table
$('.live-menu-content').append('<h1 class="menu-category-title">'+categoryName+'</h1>');
$('.live-menu-content').append('<table class="table table-'+categoryName+'"><tbody>');
//go through products
$.each(productObject, function(productId, product) { j++;
$('.table-'+categoryName+'').append('<tr><td>'+product.name+'<br/><small>'+product.description+'</small></td><td>€'+product.price+'</td><td><a onclick="addToCart(product);" class="btn btn-primary pull-right" href="#">Add</a></td></tr>');
});
// close table
$('.live-menu-content').append('</tbody></table>');
});
})
// on fail
.fail(function() {
alert("Error!");
});
return false;
}
function addToCart(product){
console.log(product);
return false;
};
感谢您的快速回复。仅传递productId的问题是,由于名称,描述和定价不同,数据需要在进入菜单时按原样存储在购物车中。 如果我可以将这些通过函数传递给函数,并且它会被解决,定价似乎不是问题,但名称也给我“未定义”。任何想法? – user3058125
那么你是否正在执行另一个Ajax调用以获取更新的数据?这发生在哪里? –
如果你是,你不能只更新全球'商店'对象与更新的数据?产品ID不会改变,是吗? –