2012-01-18 56 views
0

我具有以下功能:火狐JQuery的AJAX:取出的數據不總是被顯示

function fnGetIdentifiers(id){ 
    $.get(
    'getCultureIdentifiers.php?cultureID=' + id, 
    function(data){ 
     if (data.length > 0){    
      var identifiers = ''; 
      $.each(data, function(index, value){      
       identifiers += value + ', '; 
      })     
      $('#identifiers').text(identifiers.substring(0, identifiers.length - 2)); 
     } 
    }, 
    "json" 
    ); 
} 

標籤標識符是在這種背景下:

<dt>Identifiers</dt><dd id="identifiers"></dd> 

這將顯示在當前所選擇的行的詳細信息一個表(jQuery數據表插件)。當選擇不同的行時,信息應該被更新。這在IE8中工作得很好。 但是,在Firefox 3.6和9.0.1中,即使ajax請求返回了正確的數據(通過螢火蟲驗證),dd元素有時仍爲空。更令人困惑的是,有時候並不總是你可以在非常短的時間內看到數據,然後再次消失。

任何想法如何解決這個問題? 請注意,在行更改還有另一個AJAX請求也獲得詳細數據。這一個也可以在Firefox中使用。它們運行的​​順序並不重要。行爲是一樣的。

回答

0

正如總是張貼這5分鐘太早...就在明顯的「頓悟」之前。

上面提到的「其他AJAX請求」清除了列表中所有dd元素的內容,並且由於調用是異步順序並不重要。 - > dd元素標識符被正確更新(眼睛可見),然後第二個請求幾乎總是需要更長的時間才能清除數據。 解決方案:在第二次調用時不要清空標識符元素:

if($(this).attr('id') != 'identifiers'){ 
    //...