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不會改變,是嗎? –