在 ASP.NET 頁面中,點擊分頁碼觸發事件執行 ShowList() 方法,該方法通過 AJAX 獲取數據並追加到表格。但執行完畢後,頁面竟會自動跳轉至 $(function(){showList()}) 再次執行一遍,導致數據重複加載。
分頁碼通常使用 <a> 標籤實現,默認帶有 href 屬性。當點擊時,若未阻止默認行為,瀏覽器會執行鏈接跳轉導致頁面刷新。頁面刷新後,$(document).ready() 或 $(function(){}) 中的初始化代碼再次執行,從而調用 ShowList()。
在點擊事件處理函數中返回 false 或調用 event.preventDefault():
// jQuery 寫法
$('.page-link').click(function(e) {
e.preventDefault(); // 阻止鏈接默認跳轉
ShowList($(this).data('page'));
return false; // 兼容舊版瀏覽器
});
將分頁鏈接的 href 設置為無效值:
<a href="javascript:void(0);" class="page-link" data-page="2">2</a>
<a href="javascript:return false;" class="page-link" data-page="3">3</a>
語義更清晰,天然無跳轉行為:
<button type="button" class="page-btn" data-page="2">2</button>
button 或 <a href="javascript:void(0)"> 實現純前端交互元素。e.preventDefault(),代碼更規範、可維護性更強。.off().on() 確保單一綁定。分頁點擊導致頁面刷新並重複執行初始化,本質是 <a> 標籤默認跳轉行為未被阻止。通過阻止默認事件或修改元素類型,即可徹底解決重複加載問題。