onclick help - 读取特定类的值,第2部分

时间:2010-10-29 00:06:03

标签: javascript jquery debugging

我正在努力将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并删除所有嵌套的跨度并清理代码以使用text(),正如我在上一个问题中提到的那样。我的下一个任务!

我工作得很好,我可以show()看不见的购物车div并点击购物车按钮并关闭灯箱窗口。

我无法得到的两个问题是

  1. 我无法用我的代码读取大拇指,但所有其他数据都运行良好

  2. 更重要的是,与“ simpleCart_shelfItem ”图片相同数量的购物车按钮会显示在灯箱中。一个是伟大的,但6看起来有点过头了(或绝望的销售?哈哈)。如果有人有方向让我进入代码只显示相应“ simpleCart_shelfItem ”的一个按钮,而不是全部,我会非常感激!

  3. 我更新了我的代码,我正在使代码更接近工作。我已经修复了多个购物车按钮,当点击时,购物车数据按原样输入到购物车中,除了所有带有“ 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/

1 个答案:

答案 0 :(得分:0)

拇指选择器:

span>span>span

零匹配,因此不起作用。

按钮代码位于each功能内。将所有button引用移动到布尔值:

if($('.simpleCart_shelfItem').length)
  {
  var button = $('<button/>', {
    type: 'button',
    'class': 'shopping_button'
    });
  /*...*/
  }