2011-07-30 5 views
0

J'utilise le script SmartCart.js pour ajouter les produits d'une balise div à une autre, mais lorsque j'exécute ce code, le bouton Ajouter un produit n'est pas activé. Pourquoi?jQuery - Événement du bouton ajouté au tag div non déclenché

var HTML = '<div class="scProductListItem">'+ 
      '<table border="0" cellpadding="2" cellspacing="2">'+ 
      '<tr>'+ 
      '<td rowspan="3"><img width="100px" src="http://webscopia.com/wp-content/uploads/2011/06/Google.plus-get-an-invite-from-me.jpg" alt="Not availabel" /></td>'+ 
      '<td><strong><span id="prod_name'+'test'+'">'+'detail_product[0]'+'</span></strong></td>'+ 
      '</tr>'+ 
      '<tr>'+ 
      '<td>'+ 
      '<input type="button" rel="'+'test'+'" class="scItemButton scBtn" value="Add Product">'+ 
      '</td>'+ 
      '</tr>'+ 
      '</table>'+ 
      '<input type="button" value="TestButton" name="Test" onclick="Alert()"/>'+ 
      '</div>'; 

$('#sc_productlist').append($(HTML)); 

Ajouter un produit. L'événement de ce bouton que je ne suis pas en mesure de recevoir.

+0

Comment et quand est un gestionnaire d'événement attaché au * Bouton Ajouter un produit * –

Répondre

0

Vous devez lier l'événement onclick après le code HTML à annexant votre div ou vous pouvez utiliser la fonction jQuery live pour lier l'événement.

+0

il n'en a pas besoin. Il peut aussi utiliser onclick dans html() – genesis

+0

C'est l'événement 'click'. 'onclick' est seulement le nom de la propriété/attribut. –

+0

oui c'est. Mais il n'a ajouté aucun événement pour ajouter le produit bouton –

0

Alert() n'est pas une fonction valide

alerte (''); est une fonction valide

+1

A moins que 'Alerte' soit une fonction définie ailleurs dans le code OPs. –

+0

@ JamesAllardice: bien sûr, je sais. – genesis

0

C'est parce que vous n'avez aucun événement spécifié pour ce bouton. Essayez d'ajouter un événement onclick:

'<input type="button" rel="'+'test'+'" class="scItemButton scBtn" value="Add Product" onclick="alert(\'Add product\');">'+ 

Si vous avez ajouté un événement en utilisant jQuery, il ne fonctionne pas ajouter parce que vous ne l'événement à l'élément qui existe à ce moment-là. Vous devez ajouter l'événement au nouveau bouton après l'avoir créé, ou utiliser la méthode delegate pour ajouter un gestionnaire d'événements à un élément parent qui existe déjà:

$('#sc_productlist').delegate('.scItemButton', 'click', function(){ 
    // code to handle the event 
}); 
Questions connexes