jQuery .append () в MSIE - PullRequest
       17

jQuery .append () в MSIE

0 голосов
/ 30 октября 2010
    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. Зачем? Изображения отображаются, но текст отсутствует.

Редактировать: Извините, я впервые публикую здесь. Обновленный код В 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.

1 Ответ

0 голосов
/ 30 октября 2010

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

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

Я использовал jQote2 , но, вероятно, переключусь на Шаблоны jQuery от Microsoft .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...