2011-01-10 3 views
0

Bonjour les gars j'ai ce script:jquery reconnaissant plus tard inséré html

function getList(){ 
$.ajax({ 
    type: "POST", 
    url: "listaPogovorki.php", 
    success: function(msg){ 
    $("#listaPogovorki").html(msg); 
}}); 

} 

getList(); 

avec ce que j'appelle ce script php:

<table> 
<col id="td1"/> 
<col id="td2"/> 
<col id="td3"/> 
<col id="td4"/> 
<tr> 
<td >#ID</td> 
<td >Pogovorka</td> 
<td >Avtor</td> 
<td >Izmeni</td> 
</tr> 
<?php $result = mysql_query("SELECT * FROM $table"); 

while($row = mysql_fetch_array($result)) 
    { 
    ?> 
    <tr> 
    <td><?php echo $row['id'];?></td> 
    <td><?php echo $row['pogovorka'];?></td> 
    <td><?php echo $row['avtor'] ?></td> 
    <td><img class="editImage" src="images/icon_pencil.png" width="16px" height="16px" alt="<?php echo $row['id'];?>"></td> 
    </tr> 
    <?php } 
    mysql_close($con); 
    ?> 

</table> 

maintenant le problème est que le script ne reconnaît pas le code html retourné à partir du script PHP, donc je ne peux pas faire en cliquant sur les images (du script PHP) pour déclencher du code. Par exemple si je fais:

$(".editImage").click .... 

cela ne fonctionnera pas.

Comment puis-je faire ce travail?

Répondre

0

Vous pouvez placer la $(".editImage").click dans le rappel de succès AJAX après la mise à jour du DOM avec le nouveau HTML ou utiliser la méthode .live():

$('.editImage').live('click', function() { 
    ... 
}); 
1

Vous voulez utiliser le live function:

$('.editImage').live('click', ....); 

Ou utilisez un autre élément comme event delegate.

0

C'est ce que la fonction .live est pour - il se lie même à des éléments qui n'existent pas encore.

$ ("editImage. ") Vivre (" clic", de la fonction() {}).

http://api.jquery.com/live/

Questions connexes