2010-07-07 4 views
1

je suit la structure HTMLjavascript ne fonctionne pas pour vous venez d'ajouter innerHTML par jquery

<table> 
<tr> 
    <div id="getData"> 
    </div> 
</tr> 
</table> 

J'utilise la méthode html jquery() pour ajouter du contenu dynamique à div id "getData" comme:

$('#valueResult').html(data); 
    var data =" 
<table><tr><td><input type="checkbox" name="test[1]" onclick="doSometing()" /> Test</tr></tr></table> 
    <table><tr><td><input type="checkbox" name="test[2]" onclick="doSometing()" /> Test</tr></tr></table> " 

Mais la fonction doSometing() n'est jamais exécutée pour aucune des cases à cocher ajoutées dynamiquement. pourquoi alors?

Quelqu'un peut-il m'aider?

THX.

Répondre

2

Une solution jQuery plus propre pour un problème comme celui-ci est d'utiliser .live() ou mieux .delegate().

Avec cette approche, vous devez également donner à votre input element un identifiant unique et appelez:

$(document).ready(function(){ 
    $('#unique_input_id').live('click', function(){ 
     alert('clicked'); 
    }); 
}); 

Référence: .live(),. delegate()

+0

Cela m'a sauvé tellement de temps. .live a été en mesure de trouver le DIV nouvellement ajouté! Merci –

+0

@DavidKEgghead: bienvenue mec :) – jAndy

Questions connexes