2017-06-06 47 views
3

我有一个partialView:即通过一个jQuery​​功能加载如何将partialView元素“注入”到DOM中以添加jQuery代码?

<table class="table table-bordered table-condensed table-hover table-striped"> 
    <thead> 
     <tr> 
      <th>Trip Id</th> 
      <th>Start Time</th> 
      <th>End Time</th> 
      <th>Actual Distance</th> 
      <th>Air Distance</th> 
      <th>Avg Speed</th> 
      <th>Max Speed</th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in Model) 
     { 
      <tr class="trip" data-id="@item.TripId" data-url="@Url.Action("","")"> 
       <td>@item.TripId</td> 
       <td>@item.StartTimeStamp</td> 
       <td>@item.EndTimeStamp</td> 
       <td>@item.ActualDistance</td> 
       <td>@item.AirDistance</td> 
       <td>@item.AvgSpeed</td> 
       <td>@item.MaxSpeed</td> 
      </tr> 
     } 
    </tbody> 
</table> 

。但是我发现,当它被装载这样我site.js内部文件中.trip类不加负荷前的DOM,所以我不能写反应的任何代码:

$(".trip").click() 

如何我可以解决这个问题吗?

注:我有我的site.js enter image description here

编辑

片段里面都是我的Javascript/jQuery的代码加载partialView:

$("#TripPartial").slideUp('200', function() { 
    $('#TripPartial').load(_this.data('url'), { id: _this.data('id') }, function() { 
     $("#TripPartial").slideDown('200'); 
    }); 
}); 
+0

可以添加js代码,您调用load()函数 –

+0

@VolkanSeçkinAkbayır肯定。我会越来越对它 – Zeliax

回答

4

您应该使用event delegation为加入哪些元素动态。

您应该使用.on()方法绑定click事件处理程序。

事件代表团允许我们附加一个单一的事件侦听器,到 父元素,将火了 选择匹配所有后代,无论是现在存在或在未来 添加这些后代。

$(document).on('click','.trip',function(){ 

}); 
+0

经过一些测试,似乎我需要“双” - 点击事件才能触发。有没有解决这个问题,还是只是我的代码的其余部分缓慢? – Zeliax

+0

Nvm。我发现了这个问题。我的“点击”事件中有一个“.click”事件;) – Zeliax

相关问题