2010-10-30 1 views
-2
function loadSavedSort(start) { 
    start = parseInt(start); 
    if (isNaN(start)) 
     start = 0; 
    var listing = $("#viewsavedsort .listing"); 
    listing.find('.item').remove(); 
    var start = $('#savedSortStart').val(); 
    $.getJSON('saveajax.php', { 'start': start }, 
     function(data) { 
      $("#viewsavedsort .loading").hide(); 
      $("#viewsavedsort .view").show(); 

      // Hides/shows Older button according to returned flag NEXT 
      if (data['NEXT']) { 
       $('#viewSavedSortOlder').show(); 
      } else { 
       $('#viewSavedSortOlder').hide(); 
      } 

      // Hides Newer button if first page 
      if (start == 0) { 
       $('#viewSavedSortNewer').hide(); 
      } else { 
       $('#viewSavedSortNewer').show(); 
      } 

      for (key in data['DATA']) { 
       var html = "<div class='item'>"+ 
        "<div class='img ui-corner-all'>"+ 
         "<a href='"+data['DATA'][key]['link']+"'><img src='JPEG_75/"+data['DATA'][key]['image']+"' /></a>"+ 
        "</div>"+ 
        "<div class='text'>"+ 
         "<table><tr><td>"+ 
         "Date Saved: "+data['DATA'][key]['date']+"<br />"+ 
         "User's name: "+data['DATA'][key]['name']+"<br />"+ 
         "Keywords used: "+data['DATA'][key]['keywords']+"<br />"+ 
         "Total number of objects: "+data['DATA'][key]['total']+ 
         "</td></tr></table>" 
        "</div></div>"; 
       //html += "</div>"; 
       listing.append(html); 
      } 
     } 
    ); 
} 

Это прекрасно работает в Firefox, Safari, Opera, Google Chrome, ... но не в MSIE. Зачем? Изображения отображаются, но текст отсутствует.jQuery .append() в MSIE

Редактировать: Sorry, это первый раз, когда я размещаю здесь. Обновленный код. В saveajax.php я использовал json_encode() на этом:

$ret['DATA'][$row['id']] = array(
    'name' => stripslashes($row['name']), 
    'date' => date('n/d/Y',strtotime($row['date'])), 
    'keywords' => implode(" + ",$keywords), 
    'total' => $total, 
    'image' => $image, 
    'link' => $link, 
); 

Кроме того, я не получил каких-либо ошибок. Он просто не будет отображаться в IE. Что заставило меня почесать голову - это изображения, которые на самом деле отображаются и связаны с правильным URL.

+2

Можете ли вы предоставить небольшой контекст? Возможно, что именно перечисление и где/как вы его определили. – pinkfloydx33

+0

dom mibht не будет avaialbe в IE к тому времени, когда вы динамически генерируете контент – kobe

+0

Мне также интересно, что такое 'data ['DATA']'. Возможно ли, что эти переменные просто не определены из-за какой-то более ранней проблемы? – VoteyDisciple

ответ

0

Вместо того чтобы выполнять все эти конкатенации строк, вы должны просто использовать одну из клиентских библиотек шаблонов.

Here - это хорошая статья, которая объясняет, что такое шаблон для клиентской стороны.

Я использовал jQote2, но, вероятно, переключится на jQuery Templating by Microsoft.