2016-07-29 4 views
-1

にレンダリングされません。私はそれを実行すると、このJavaScriptがJavaScriptのテーブルは、テーブル

function pickdet(Id) { 
     //alert(Id); 
     var dd = Id; 

     $.ajax({ 
      cache: false, 
      url: "/PVSigns1/GetDetails", 
      data: { 'Id' : Id }, 
      type: "GET", 
      dataType: "json", 
      success: function (data) { 
       //alert('i dey here') 
       var row = ""; 
       var baseurl = '@Url.Action("Edit","PVSigns1")' + '?Id='; 
       $.each(data, function (index, item) { 
        var clickUrl = baseurl + item.PVSignId; 

        //row += "<tr><td>" + item.VitalSigns.Sign + "</td><td>" + item.SignValue + "</td><td> <input type= 'button' onclick= location.href = + '<Url.Action("Create", "PVSigns1", new { Id = item.PVSignId }) ' />" + "</td></tr>"; 
        row += "<tr><td>" + item.VitalSigns.Sign + "</td><td>" + item.SignValue + 
         "</td><td> <button class='editbtn btn btn-xs btn-success' data-url = '" + clickUrl + "'> <i class='fa fa-edit fa-lg'></i> Edit</button></td></tr>"; 
       }); 
       $("#pvv").html(row); 
      }, 
      error: function (result) { 
       $("#pvv").html('Nothing to show <br /> <p />' + result); 
      } 
     }); 
    } 

    $(function() { 

     $("button.editbtn").click(function (e) { 
      alert("url"); 
      e.preventDefault(); 
      //e.defaultPrevented(); 
      window.location.href = $(this).attr("url"); 
     }); 

    }); 

、それはブラウザ上で完全に表示していますが、作成したリンクが動作しない、と私はページのソースを表示します上記のコードが注入されるtbody部分は描画されません。

これは私が手に入れたものです。上の表の緑色のボタン のいずれかをクリックすると、2番目の表がロードされます。問題は2番目の表にあります。

注:私はJQuery Datatablesを使用しています。

enter image description here

このページ・ソースからレンダリングされた出力

<div> 
<h3> Details</h3> 
<table id="Pv" class="table table-condensed"> 
    <thead> 
     <tr> 
      <th>Sign</th> 
      <th> Value </th> 
      <th></th> 
     </tr> 
    </thead> 
    <tbody id="pvv"> 

    </tbody> 
</table> 

注意<tbody id="pvv">が空で、テーブルではない要素です。どうした?

+0

詳細については、jsfiddleでコードを追加してください。 –

+0

サンプルのhttpレスポンスを投稿できますか? jsonレスポンスの例。 –

+0

dom要素内にclick関数を配置します – anand

答えて

0

clickイベントにDOM要素の委譲を使用する必要があります。既存のDOMの後にイベントをバインドした後に生成される要素

$("#Pv").on('click','button.editbtn', function (e) { 
      alert("url"); 
      e.preventDefault(); 
      //e.defaultPrevented(); 
      window.location.href = $(this).attr("url"); 
}); 
関連する問題