jquery识别后来插入的html

时间:2011-01-10 15:31:41

标签: jquery html

大家好我有这个脚本:

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

}

getList();

用这个我称之为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>

现在的问题是脚本无法识别从php脚本返回的html,因此我无法点击图像(从php脚本)来激活一些代码。例如,如果我做:

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

它不会工作。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:1)

您想使用live function

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

或使用其他元素作为event delegate

答案 1 :(得分:1)

无法识别输出,因为在调用脚本之前,您返回的html不是原始dom的一部分。

Have a look at bind or live with jquery

答案 2 :(得分:0)

您可以在使用新HTML更新DOM或使用.live()方法后将$(".editImage").click置于AJAX成功回调中:

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

答案 3 :(得分:0)

这就是.live函数的用途 - 它甚至绑定到尚不存在的元素。

$(“。editImage”)。live(“click”,function(){});

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