0

ajaxの成功で新しい行を追加した後、この行は選択できません(私はtoggleClass()と hover() も使用しています)。グーグルの後、イベントがバインドされておらず、 click( )の代わりにon()を使用する必要があるためですが、それでも同じです

$("#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>
    ";
4

2 に答える 2

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();
    }
});
于 2013-02-18T17:27:31.473 に答える
0

For dynamically added element syntax of on() is like:

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

Where staticPanentElement means any valid selector that point to an item that is not dynamically created and contains the target.

And in your code it seems you're using multiple rows with same id=simpan and that is not acceptable.

于 2013-02-18T17:28:25.363 に答える