2012-05-28 21 views
0

我的問題碰巧是錯誤,我試圖產生一個錯誤,在這種情況下,錯誤隱藏加載符號,並顯示刷新按鈕,以便用戶重新加載頁面,看看是否這次加載的數據。錯誤通知不起作用

$(document).ready(function() { 
    $('#busy').show(); 
    $(document).bind('deviceready', function() { 
     var today = $('#todaysong'); 

     $.ajax({ 
      url: 'my url', 
      dataType: 'jsonp', 
      jsonp: 'jsoncallback', 
      timeout: 5000, 
      success: function (data, status) { 
       $.each(data, function (i, item) { 
        var song = '<name>' + item.name + '</name>' + '<artist>' + item.artist + '<br></artist>'; 
        $('#busy').hide(); 

        today.append(song); 
       }); 
      }, 
      error: function (error) { 
       $('#busy').fadeOut(); 
       $('#reload').fadeIn(); 
      } 
     }); 
    }); 
}); 

這是我的代碼,可能有人對我在做什麼錯提醒,我已經嘗試了一些東西,似乎無法得到它的工作,還要我做這麼說按鈕能夠刷新這個單獨的代碼?

非常感謝。

+2

「不工作」非常模糊:你能更清楚你期望發生什麼以及實際發生了什麼嗎?例如,錯誤回調是否正在運行? ('#busy'實際上是淡出,還是......?如果你添加一個'console.log('error')'或'alert('error')'作爲錯誤處理程序的第一行會發生什麼?) – nnnnnn

回答

0

爲了調試代碼:

  • 你產生對自己的錯誤?這真的是一個錯誤嗎?通過Firebug跟蹤您的請求或...
  • 確保運行錯誤功能。再次嘗試Firebug或這樣的事情設置斷點。
  • 檢查JavaScript控制檯確保沒有任何該死的JavaScript錯誤。並再次Firebug錯誤控制檯。
0

沒有看到其他細節,很難建議。 仍在嘗試..檢查您提到的元素的ID與HTML中的相同。在HTML中檢查一個ID未分配給多個元素。

在AJAX代碼中刪除jsonp: 'jsoncallback',一段時間,並測試它是否工作。

0

誤差(jqXHR,textStatus,errorThrown)

一個函數,如果請求不被調用。該函數接收 三個參數:jqXHR(在jQuery 1.4.x中,XMLHttpRequest中)對象,一個 字符串,描述發生的錯誤類型以及一個可選的 異常對象(如果發生)。第二個 參數的可能值(除了空值)是「超時」,「錯誤」,「中止」和「parsererror」 。發生HTTP錯誤時,errorThrown會收到HTTP狀態的 文本部分,例如「未找到」或「內部 服務器錯誤」。從jQuery 1.5開始,錯誤設置可以接受函數的數組 。每個函數都會依次調用。注意:此處理程序 未被調用用於跨域腳本和JSONP請求。這是一個 Ajax事件。

其中在這種情況下的重要部分是;

注意:此處理程序不針對跨域腳本和JSONP 請求調用。

引用來自jQuery.ajax的API文檔。您應該改用jsonpCallback