2010-12-08 72 views
0

我正在尝试使用Yoxview灯箱图库将购物车(simplecart-js)整合到页面中。灯箱允许按钮集成到标题栏中,我试图获得一个购物车按钮,当点击它时,读取特定的值,然后使用第二个点击函数,在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我错过了一些东西,只要读取span中的值即可。任何帮助或方向将不胜感激。

回答

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工作?

+0

显然,我是一个jquery新手,我不知道,因为我要求帮助。 – Macsupport 2010-12-08 07:01:06

+0

关键是你需要整理范围并以不同的方式创建范围。 – 2010-12-08 23:00:18

0

您正在创建一个本地作用域变量price在您的匿名函数中传递给click函数。所以价格变量在匿名函数之外是不可用的。