Javascript 通过Ajax调用加载元素后单击事件不起作用
我加载页面(包含javascript),然后加载PartialView(包含表)。问题是,我无法选择表id,或者onClick事件没有触发 Index.cshtmlJavascript 通过Ajax调用加载元素后单击事件不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我加载页面(包含javascript),然后加载PartialView(包含表)。问题是,我无法选择表id,或者onClick事件没有触发 Index.cshtml $('#sortingRow').on('click', 'th a', function () { $.ajax({ url: this.href, type: 'GET', data: { sortOrder: sortOrder }, success: f
$('#sortingRow').on('click', 'th a', function () {
$.ajax({
url: this.href,
type: 'GET',
data: { sortOrder: sortOrder },
success: function (result) {
$('#sortingRow').parent().html(result);
LoadSampleDesign();
}
});
return false;
});
_PartialView.cshtml
<table>
<tr id="sortingRow">
<th>
<a href="link">Click Me</a>
</th>
</tr>
</table>
我试过JSFIDLE,javascript似乎工作正常。另外,一开始,您可能会认为问题在于jquery找不到表,因为它是在DOM完成后加载的,但这就是我使用“on()”的原因,这不是使它处于活动状态,所以即使在DOM完成后,它也应该能够找到#表。通过Ajax加载部分视图后,单击事件不再绑定。按如下所示更改行单击事件
$('#sortingRow')。在('click','th a',function(){
是否在部分加载后调用事件处理程序?如果不是,则无法将事件附加到尚未在dom中呈现的元素。在加载的成功函数中,我尝试了以下操作:$('sortingRow').bind('click');当您在此处指定处理程序时:
$('sortingRow')。On('click','th a'
,您确定#sortingRow
此时已加载到DOM中吗?它需要存在,而th a
元素不存在。如果我没有弄错,第一个代码段应该在最后一个代码段的后面调用(它在success
中的意思)。
$(sections).on('click', '#sectionPageLinks a', function () {
$.ajax({
url: this.href,
type: 'GET',
success: function (result) {
$('#sectionPageLinks').parent().html(result);
LoadSampleDesign();
}
});
return false;
});
$(document).on('click', '#sortingRow th a', function () {