2014-02-16 60 views
1

我有一個網站,我想改變頁面而不重新加載頁面,只是刷新內容。我正在使用express.js框架。下面就來改變頁面的代碼:檢測如果Ajax調用Node.js(刷新頁面無需重新加載)

$("a").on('click', function(e) { 
    pageUrl = $(this).attr('href'); 
    e.preventDefault(); 

    $.ajax({ 
     url: pageUrl, success: function(data) { 
      $('#main-content').html(data);    
     } 
    }); 
}); 

這裏是我的「基本」佈局玉:

如何與express.js檢測Ajax調用,所以我只能加載「塊身體「而不是所有的佈局。

我認爲這將是這樣的:

if !ajax 
    doctype 
    ... 
    block body 
else 
    block body 

謝謝。

回答

1

既然你添加新的內容DOM當你點擊a元素,單擊處理程序將不會爲新添加的a元素工作。

這不是關於NodeJS,而是你的jQuery代碼。您應該在bodydocument上添加點擊處理程序,因爲單擊了a元素時它不會更改。

$(document).on('click', "a", function(e) { 
    pageUrl = $(this).attr('href'); 
    e.preventDefault();  
    $.ajax({ 
     url: pageUrl, success: function(data) { 
      $('#main-content').html(data);    
     } 
    }); 
}); 

有對another SO answer檢查AJAX調用 Express.js的解決方案。

+0

是的,我知道:p。這不是問題(我已經知道$(文檔)的東西)。問題是我只想更新#主要內容。現在,發送給我的是所有頁面(包含文檔類型...)。所以我想用express.js來檢測它是什麼類型的請求。 – user3294481

+0

@ user3294481 http://stackoverflow.com/questions/15945118/detecting-ajax-requests-on-nodejs-with-express – Subin

相關問題