Как мне заставить приложение JQuery работать в IE 7 и 8? - PullRequest
0 голосов
/ 11 марта 2010

Это мой код:

$("#multimedia-tabs #"+response.currenttab+" #"+response.currenttab+"div").append(divHtml);

Где divHtml имеет теги html li

Отлично работает в FF и chrome, но не в IE7 и 8: (

Попробовал много альтернатив, доступных на этом сайте, но без радости!

Пожалуйста, помогите

$(document).ready(function() {
    $("#next").live('click', function(){getMultimedia($(this).attr('page'), $(this).attr('url'));});
    $("#previous").live('click', function(){getMultimedia($(this).attr('page'), $(this).attr('url'));});
    $("a.page").live('click', function(e){getMultimedia($(this).attr('page'), $(this).attr('url'));});
});

function displayPage(response){
    response = JSON.parse(response);
    $("#multimedia-tabs #"+response.currenttab+" #"+response.currenttab+"div").html('');
    var divHtml = '';
    for(var i in response.page){
            divHtml += '<li><a class="medialink" href="'+response.page[i].MedUrl+'">'+response.page[i].MedUrl+'</a></li>';
    }
    divHtml += '';
    var target = response.currenttab+'div';
    $("#"+response.currenttab+"div").append(divHtml);
    updatePageLinks(response.currentPage, response.currenttab);
}

function updatePageLinks(page, currenttab){
    $("#multimedia-tabs #"+currenttab+" #previous").attr('page', page-1);
    $("#multimedia-tabs #"+currenttab+" #next").attr('page', page+1);
}

function getMultimedia(page,url){
    var url = url + "/page/" + page;
    $.post(url,
              {"format" : "json"},
              function(data){
                      displayPage(data);
              }, 'html');
    return false;
}

1 Ответ

1 голос
/ 11 марта 2010

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

Кроме того, вы можете сократить свой селектор, поскольку идентификаторы должны быть уникальными для:

$("#"+response.currenttab+"div").append(divHtml);
...