2016-05-05 1 views
0

の.on( "click"、...)は機能しませんでした(おそらく例外はスローされません)。私は.onclickを使うことができないので、私はこの方法を.on( "クリック" ...)で試しました。私はJS/jQueryを初めて使用しているので、クリック機能で同じで作成されたオブジェクトでは、

クリックした行の下に新しい行を追加しようとしました。これは新しく作成された行にも有効です。

私のhtml:

<tbody> 
    <tr id="line1"><td>Stuff1</td><td>Stuff</td><td>Stuff</td><td>Stuff</td><td>Stuff</td></tr> 
    <tr id="line2"><td>Stuff2</td><td>Stuff</td><td>Stuff</td><td>Stuff</td><td>Stuff</td></tr> 
    <tr id="line3"><td>Stuff3</td><td>Stuff</td><td>Stuff</td><td>Stuff</td><td>Stuff</td></tr> 
    <tr id="line4"><td>Stuff4</td><td>Stuff</td><td>Stuff</td><td>Stuff</td><td>Stuff</td></tr> 
</tbody> 

マイJS:あなたの助けを

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 

<script>  

    $(document).ready(function(){ 
     $("tr").on("click",function(){ 
      var childId = $(this).attr("id")+1; 
      if($("#"+childId).length){ 
       $("#"+childId).toggle(); 
      }else{ 
       $(this).after('<tr id="'+childId+'"><td>Stuffxxxx</td><td>Stuff</td><td>Stuff</td><td>Stuff</td><td>Stuff</td></tr>'); 
       //AJAX 
      } 
     }); 
    }); 
</script> 

ありがとう! :)

+0

イベント委譲を使用します。 – evolutionxbox

+0

'var childId = $(this).attr(" id ")+ 1;'これは魔法のように 'line1'を' line2'に変えないでしょう、 'line11'を作るつもりです –

答えて

0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 

<script>  

    $(document).ready(function(){ 
     $("table").on("click","tr", function(){ 
      var childId = $(this).attr("id")+1; 
      if($("#"+childId).length){ 
       $("#"+childId).toggle(); 
      }else{ 
       $(this).after('<tr id="'+childId+'"><td>Stuffxxxx</td><td>Stuff</td><td>Stuff</td><td>Stuff</td><td>Stuff</td></tr>'); 
       //AJAX 
      } 
     }); 
    }); 
</script> 
関連する問題