2013-02-18 53 views
0

后,我在追加阿贾克斯成功新行,该行不能选择(我使用toggleClass()悬停())。谷歌搜索后,这是因为事件不绑定,并应使用在()的而不是点击(),但它仍然是相同的jQuery的行不能被选择后动态HTML追加

$("#simpan").on("click",function(){ 
       var nim=$("#nim").val(); 
       var nama=$("#nama").val(); 
       var alamat=$("#alamat").val(); 


       $.ajax({ 
        type:"post", 
        url:"data.php?action=getdata", 
        data:"nim="+nim+"&nama="+nama+"&alamat="+alamat, 
        success:function(data){ 
         $("table").append(data); 
         resetForm(); 
        } 
       }); 

      }); 

你们有解决办法吗?

更新: 这里的行的事件处理程序

$("tr").not(":first").click(function(){ 
    $("tr").not(this).removeClass("selected"); 
    $(this).toggleClass("selected"); 
}); 

我的表

<table id="table" border="1"> 
     <tr> 
      <td>Nim</td> 
      <td>Nama</td> 
      <td>Alamat</td> 
     </tr> 

     <?php 
     include "db.php"; 
     $result=mysql_query("SELECT * FROM mahasiswa"); 
     while($mahasiswa=mysql_fetch_array($result)){ 
     ?> 

     <tr> 
     <td><?php echo $mahasiswa["nim"]; ?></td> 
     <td><?php echo $mahasiswa["nama"]; ?></td> 
     <td><?php echo $mahasiswa["alamat"]; ?></td> 
     </tr> 

     <?php 
     } 
     ?> 

    </table> 

“simpan”是一个按钮,单击时,该数据表格使用ajax保存到数据库,并且成功时,数据被附加到表格中。

echo " 
     <tr> 
     <td>$_POST[nim]</td> 
     <td>$_POST[nama]</td> 
     <td>$_POST[alamat]</td> 
     </tr> 
    "; 
+0

我们确实不需要看到附加行的代码,但行本身的事件处理程序会更有趣。 – adeneo 2013-02-18 17:26:28

+0

请包括您正在使用的表格的HTML。 – 2013-02-18 17:26:55

+0

'$(“#simpan”)'是谁的ID? – Jai 2013-02-18 17:35:07

回答

0
$(document).on("click", "#simpan", function(){ 
    var nim=$("#nim").val(); 
    var nama=$("#nama").val(); 
    var alamat=$("#alamat").val(); 


    $.ajax({ 
     type:"post", 
     url:"data.php?action=getdata", 
     data:"nim="+nim+"&nama="+nama+"&alamat="+alamat, 
     success:function(data){ 
     $("table").append(data); 
     resetForm(); 
    } 
}); 
+0

我不认为ID为#simpan的元素是行,看起来像父母,否则多个ID也是一个问题。 – adeneo 2013-02-18 17:29:48

+0

@adeneo我的猜测是,这是选择器,因为他说他已将它切换到“on”,但他使用的语法错误。然而,你是对的,关于ID选择器,如果我是正确的,他需要将ID切换到一个类 – 2013-02-18 17:31:58

0

对于on()动态添加元素的语法是这样的:

$(staticPanentElement).on(eventName, target, handlerFunction); 

staticPanentElement意味着指向未动态创建并且包含target的项目的任何有效的选择器。

而在您的代码中,似乎您使用的行数相同且为id=simpan,这是不可接受的。