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 に答える