我正在将JavaScript购物车simplecart-js集成到Jquery LightBox Yoxview中。 Yoxview有一个选项可以在弹出的标题窗格中添加按钮链接,以提供各种选项,下载,购物车等。我的购物车按钮的相关代码是:
var yoxviewCartButton = $("<a>", {
title: "Add to cart",
});
$('.simpleCart_shelfItem').each(function () {
var name = $(this).children('span')[0].firstChild.data;
var price = $(this).find('span>span').text().replace('$', '');
var thumbs = $(this).find('span>span>span').text().replace('$', '');
var button = $('<button/>', {
type: 'button',
'class': 'shopping_button'
});
button.append($('<img/>', {
src: 'yoxview/images/yoxview_cart_icon.png',
title: 'Add to cart',
width: 18,
height: 18
}));
button.click(function () {
simpleCart.add('name=' + name, 'price=' + price, 'quantity=1', 'thumb=' + thumbs);
});
yoxviewCartButton.append(button);
});
$(".yoxview").yoxview({
infoButtons: {
download: yoxviewDownloadButton,
cart: yoxviewCartButton
},
onSelect: function (i, image) {
$.yoxview.infoButtons.download.attr("href", image.media.src);
$.yoxview.infoButtons.cart.data("yoxview_cart", image.media.src);
$.yoxview.infoButtons.cart.click(function () {
$("#cart").show();
$.yoxview.close();
});
}
});
的HTML是:
<a class="item yoxview simpleCart_shelfItem" href="pics/pic0.png" title="Title 1">
<img class="content" src="pics/pic0.png" title="Title 1"/>
<span class="caption item_name">
Title 1
<span class="item_price">$14.99</span>
<span class="item_thumb">pic5.png</span>
</span>
</a>
我意识到我需要清理html并清除所有嵌套的span并清理代码以使用
text()
,正如我上一个问题中建议的bobince一样。我的下一个任务!我的效果很好,点击购物车按钮后,我可以
show()
看不见的购物车div并关闭灯箱窗口,购物车就可以使用了。我无法解决的两个问题是
我的拇指无法与我的代码一起阅读,但所有其他数据都能正常工作
更重要的是,灯箱中显示的购物车按钮数量与“ simpleCart_shelfItem”图像相同。一个很棒,但是6个看起来有点过头了(或拼命出售?)。如果有人指导我让代码仅显示对应的“ simpleCart_shelfItem”的一个按钮,而不是全部,我将不胜感激!
我更新了代码,并使代码更接近工作了。我已经修复了多个购物车按钮,并单击了购物车数据,应该将其输入到购物车中,除了所有带有“ simpleCart_shelfItem”类的项目都加载到购物车中,而不仅仅是我单击了购物车按钮的项目。这是我的更新代码:
var yoxviewCartButton = $("<a>", {
title: "Add to cart"
});
yoxviewCartButton.append($("<img>", {
src: "yoxview/images/yoxview_cart_icon.png",
alt: "Add to cart",
css: { width: 18, height: 18 }
}));
$(".yoxview").yoxview({
infoButtons: {
download: yoxviewDownloadButton,
cart: yoxviewCartButton
},
onSelect: function(i, image)
{
$.yoxview.infoButtons.download.attr("href", image.media.src);
$.yoxview.infoButtons.cart.data("yoxview_cart", image.media.src);
$.yoxview.infoButtons.cart.click(function () {
$('.simpleCart_shelfItem').each(function () {
var name = $(this).children('span')[0].firstChild.data;
var price = $(this).find('span>span').text().replace('$', '');
var thumbs = $(this).find('span>span>span').text().replace('$', '');
simpleCart.add('name=' + name, 'price=' + price, 'quantity=1', 'thumb=' + thumbs);
});
$("#cart").show();
$.yoxview.close();
});
}
});
这是测试页面的链接:
http://macosxsupport.com/yoxview_cart/
最佳答案
拇指选择器:
span>span>span
匹配为零,因此无法正常工作。
按钮代码位于
each
函数内部。将所有button
引用移至布尔值:if($('.simpleCart_shelfItem').length)
{
var button = $('<button/>', {
type: 'button',
'class': 'shopping_button'
});
/*...*/
}