Я хочу передать объект продукта из цикла $ .each (внутри функции) в функцию за пределами закрытия.
Когда я console.log произведение (объект) он дает мне:
"Uncaught 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 для получения обновленных данных? Где это происходит? –
И если да, не можете ли вы просто обновить глобальный объект 'store' с обновленными данными? Идентификатор продукта не изменяется, не так ли? –