2011-09-30 170 views
1

稱爲頁面的工作,如果我有在一個頁面下:jQuery的不阿賈克斯

$(document).ready(function() { 
        alert('moo'); 
       }); 

它會顯示警告,當我查看該頁面,但如果該網頁是通過Ajax叫那麼警報不會顯示...任何想法爲什麼?或者如何解決這個問題?

注:這是測試JavaScript,我實際上並不顯示一個警告,我真正的應用程序

感謝

阿賈克斯爵士的要求:

$(document).ready(function() 
    { 
     $('ul#ui-ajax-tabs li a').click(function (e) 
     { 
      e.preventDefault(); 
      $("ul#ui-ajax-tabs li").removeClass("selected"); 
      $(this).parents('li').addClass("loading"); 
      var url = $(this).attr("href"); 
      var link = $(this); 
      $.ajax({ 
       url: url, 
       success: function (responseHtml) 
       { 
        //$('div#ui-tab-content').html($(responseHtml)); 
        $('div#ui-tab-content').html($(responseHtml).find('div#ui-tab-content > div#ui-ajax-html')); 
        $(link).parents('li').addClass('selected'); 
        $("ul#ui-ajax-tabs li").removeClass("loading"); 
        History.pushState(null, $(responseHtml).filter('title').text(), url) 
       }, 
       error: function (responseHtml) 
       { 
        $('div#ui-tab-content').html('<div class="message error"><p><strong>Something went wrong...</strong> Please contact the Administrator!</p></div>'); 
        $(link).parents('li').addClass('selected'); 
        $("ul#ui-ajax-tabs li").removeClass("loading"); 
        History.pushState(null, $(responseHtml).filter('title').text(), url) 
       }, 
       statusCode: 
       { 
        404: function (responseHtml) 
        { 
         $('div#ui-tab-content').html('<div class="message error"><p><strong>Error 404 (Not Found)</strong> Please contact the Administrator!</p></div>'); 
         $(link).parents('li').addClass('selected'); 
         $("ul#ui-ajax-tabs li").removeClass("loading"); 
         History.pushState(null, 'Error 404 (Not Found)', url) 
        }, 
        500: function (responseHtml) 
        { 
         $('div#ui-tab-content').html('<div class="message error"><p><strong>Error 500 (Internal Server Error)</strong> Please contact the Administrator!</p></div>'); 
         $(link).parents('li').addClass('selected'); 
         $("ul#ui-ajax-tabs li").removeClass("loading"); 
         History.pushState(null, 'Error 500 (Internal Server Error)', url) 
        } 
       } 
      }); 
     }); 
    }); 
+0

你可以給我們你的ajax代碼嗎? – genesis

+0

定義如何通過ajax-request調用頁面。哪裏包含響應? –

+0

您可以在Google Chrome或Mozilla Firefox上測試嗎?鍵入Ctrl + Shift + J並查看是否顯示錯誤。 –

回答

2

你的網頁是文本。您使用的瀏覽器恰好在您從服務器請求時解釋它。

如果你正在做一個ajax請求,內容將作爲一個字符串等待你做一些事情。無論它上面有腳本,它都不會自動執行。

您必須創建一個腳本元素作爲innerText,並將其附加到DOM以使其由瀏覽器執行。當你調用AJAX,但你可以返回一個js腳本文本和使用eval執行它在頁面上()函數

0

您的遠程js代碼通過Ajax,你的意思是你正在從服務器請求一些HTML(動態的或其他的),它恰好包含這個JavaScript?

如果是這樣,該代碼段應該運行,但直到您將其插入到DOM中。

如果您正在使用jQuery,從服務器獲取HTML,並用它替換DOM元素的內容是「負載」方法的最典型方式:

jQuery .load()

0

當你說你是「呼叫」頁面不執行

0

原因警報沒有按對Ajax請求的提出是因爲「文檔」已經執行了「就緒」狀態。

從js文件中移除$(document).ready()(請在其中放置alert()),然後嘗試通過ajax加載它。它應該工作。

+0

試過了,它仍然不起作用。 – Cameron