帮助查找然后替换单击功能上的文本

时间:2010-12-08 03:34:37

标签: jquery function click

我正在尝试使用Yoxview灯箱库将购物车(simplecart-js)集成到页面中。灯箱允许集成到标题栏中的按钮,我试图让购物车按钮工作,当点击时,读取s内的特定值,然后使用第二次点击功能,在simplecart中使用这些值(simplecart.add) 。 这是代码:

 $('.simpleCart_shelfItem').click(function () {
var name = $(this).find('span').text().replace('$', '');
var price = $(this).find('span').text().replace('$', '');
var thumbs = $(this).find('span').text().replace('$', '');

});                     
var yoxviewCartButton = $("<a>", {
 title: "Add to cart",
 href: "javascript:;",
 onClick: "simpleCart.add('name=' + name, 'price=' + price, 'quantity=1', 'thumb=' + thumbs);"       
    });
    yoxviewCartButton.append($("<img>", {
        src: "res/js/yoxview/images/yoxview_cart_icon.png",
        alt: "Add to cart",
        css: { width: 18, height: 18 }
    }));    

HTML如下:

<a class="item simpleCart_shelfItem" href="slides/foo.jpg" title="Test">
    <span class="caption item_name">Title 0</span>
    <span class="item_price">$14.99</span>
    <span class="item_thumb">thumbs/foo.jpg</span></a>

我一直收到错误“价格未定义”。 Obvioulsy我在阅读跨度中的值时遗漏了一些东西。任何帮助或指示将不胜感激。

2 个答案:

答案 0 :(得分:0)

这是一个简单的答案:范围。看看目前的情况:

$('.simpleCart_shelfItem').click(
    function () {
        var name = $(this).find('span').text().replace('$', '');
        var price = $(this).find('span').text().replace('$', '');
        var thumbs = $(this).find('span').text().replace('$', '');
    }
);

var yoxviewCartButton = $("<a>",
    {
        title: "Add to cart",
        href: "javascript:;",
        onClick: "simpleCart.add('name=' + name, 'price=' + price, 'quantity=1', 'thumb=' + thumbs);"
    }
);

yoxviewCartButton.append(
    $("<img>",
        {
            src: "res/js/yoxview/images/yoxview_cart_icon.png",
            alt: "Add to cart",
            css: { width: 18, height: 18 }
        }
    )
);

你真的期望yoxviewCartButton能够发挥作用吗?

答案 1 :(得分:0)

您正在传递给price函数的匿名函数中创建一个本地范围的变量click。因此,在匿名函数之外无法使用价格变量。