2012-12-15 2 views
0

Je sais que cela a été couvert à quelques reprises, mais je suis complètement un noob quand il s'agit de javascript, donc je n'ai aucune idée de ce que je fais. Je cours un javascript qui envoie des variables à un dossier de php et cette information est ajaxed dans la page courante using innerhtml. Voici cette partie du code ...Exécuter ajaxed javascript

function givingHistory(dyear,did) 
    { 
    var divname="giving" + dyear; 
    $.ajax({ 
     url: 'finance/givinghistory.php', 
     type: 'POST', 
     data: { 
      year: dyear, 
      id: did 
     }, 
     success: function(givedata) { 
      document.getElementById(divname).innerHTML = givedata; 
     } 
    }); 

} 
</script> 

Dans le fichier réponse de la fonction givedata du php il y a un appel à une autre fonction javascript qui est déjà chargé dans mon dossier .js commun (afin que les deux fonctions javascript sont chargés quand la page se charge). Comment puis-je obtenir le onClick qui est ajouté via innerhtml pour fonctionner? Dans le fichier php, je vérifie pour voir if id = a php session variable. Si c'est le cas, il crache le texte qui comprend le onClick.

Répondre

0

Si vous utilisez un identifiant/classe/identificateur spécifique lorsque la page est chargée dans la fonction $ ('*'), l'action se liera uniquement à celle-ci. Pour que l'action se lie à n'importe quoi, essayez d'utiliser $(document).on('click', **selector**, function() {});.

Auparavant, bind/live était lié aux éléments au fur et à mesure mais on est maintenant la fonction.

Aussi pourquoi mélangez-vous $ .ajax (jQuery) avec document.getElementById (divname) .innerHTML (javascript normal)? Si vous utilisez déjà jQuery, vous pouvez simplement utiliser $('#'+divname).html(blahbahblah);