2014-06-24 52 views
0

我正在加載頁面(包含JavaScript),然後我加載PartialView(包含表格)。問題是,我無法選擇表格ID或者onClick事件不會觸發。點擊事件通過Ajax調用加載元素後不工作

Index.cshtml

$('#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> 

正在被使用Ajax加載partialView,像這樣:

$(sections).on('click', '#sectionPageLinks a', function() { 
    $.ajax({ 
     url: this.href, 
     type: 'GET', 
     success: function (result) { 
      $('#sectionPageLinks').parent().html(result); 
      LoadSampleDesign(); 
     } 
    }); 
    return false; 
}); 

我試過的jsfiddle和JavaScript似乎工作正常。此外,首先,你可能會認爲問題在於jquery在DOM完成後加載後找不到表,但這就是爲什麼我使用「on()」,是不是因爲它使它活着,所以它應該能夠在DOM完成後找到#table。

+1

是部分負荷之後被調用的事件處理程序?如果不是,則事件不能附加到尚未在dom中呈現的元素。 – DontVoteMeDown

+0

關於load的成功函數,我試過這個:$('#sortingRow')。bind('click'); – JohnC1

+0

當你在這裏指定你的處理程序時:$('#sortingRow')。on('click','th a'',你確定'#sortingRow'已經被加載到DOM中了嗎?它需要存在,'th a'元素不需要 –

回答

1

通過Ajax加載部分視圖後,點擊事件不再被綁定。如下更改您的行單擊事件。

$('#sortingRow').on('click', 'th a', function() {

$(document).on('click', '#sortingRow th a', function() { 
+2

這對我有用。 – JohnC1

相關問題