0

这是我的代码:

$("#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;
}
4

1 回答 1

1

看起来您有多个相同的 ID。IE 不会像其他浏览器在某些情况下那样容忍这种情况……它是无效的 HTML。您需要为您的元素提供唯一的 ID。

此外,您可以缩短选择器,因为 ID 应该是唯一的:

$("#"+response.currenttab+"div").append(divHtml);
于 2010-03-11T11:20:46.860 回答