2013-02-18 51 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,這是不可接受的。