2010-12-08 60 views
0

J'essaie d'intégrer un panier (simplecart-js) dans une page en utilisant la galerie Yoxview lightbox. La lightbox permet des boutons intégrés dans la barre de titre et j'essaye de faire fonctionner un bouton de chariot qui, quand on cliquera, lira des valeurs spécifiques dans 's puis avec une deuxième fonction de clic, utilise ces valeurs dans simplecart (simplecart.add) . Voici le code:Aide pour trouver puis remplacer le texte sur la fonction de clic

$('.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 } 
    }));  

Le code HTML est comme suit:

<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> 

Je continue à obtenir l'erreur "prix n'est pas défini". Obvioulsy Il me manque quelque chose en ce qui concerne la lecture des valeurs dans la durée. Toute aide ou orientation serait appréciée.

Répondre

0

Voici la réponse simple: portée. Regardez ce qu'il est actuellement:

$('.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 } 
     } 
    ) 
); 

Avez-vous vraiment yoxviewCartButton à travailler?

+0

De toute évidence, je suis un novice jquery et je ne savais pas depuis que j'ai demandé de l'aide. – Macsupport

+0

Le point est que vous aurez besoin de trier la portée et de le créer d'une manière différente. –

0

Vous créez une variable de portée locale price à l'intérieur de votre fonction anonyme transmise à la fonction click. La variable de prix n'est donc pas disponible en dehors de votre fonction anonyme.

+0

Merci pour l'info. Je vous en suis reconnaissant. – Macsupport