3

IE8 で問題が発生しました:

function costructor(sectionId){
$('#nextG').ready(function(){
var counterBis = 0;
slider = '.slider0'+sectionId;
//sliderBox = $(slider).closest('.floatContent');
unitScrollBis = $(slider).find('.floatImg').eq(0).width();
maxImg = $(slider).find('.floatImg').length-2;
    /*problem*/
prev = "#" + $("#controller0" + sectionId).find(".controller").eq(0).attr("id");
next = "#" + $("#controller0" + sectionId).find(".controller").eq(0).attr("id");
    /*END*/
console.log(prev);
console.log(next);
makeMove(counterBis,unitScrollBis,prev,next,slider,maxImg);
function makeMove(counterBis,unitScrollBis,prev,next,slider,maxImg){
if(counterBis <= 0){
    $(prev).fadeOut("fast");
}
else if(counterBis >= maxImg){
    $(next).fadeOut("fast");
}
$(next).click(function(){
    if(counterBis <= maxImg){
        counterBis++;
        $(prev).fadeIn("fast");
        slide(counterBis);
        }
    else{
        $(next).fadeOut("fast");
    }
});
$(prev).click(function(){
    if(counterBis > 0){
        counterBis--;
        $(next).fadeIn("fast");
        slide(counterBis);
    }
    else{
        $(prev).fadeOut("fast");
    }
});
function slide(counterBis){
    $(slider).animate({
    marginLeft: '-' + (unitScrollBis*counterBis) + 'px'
},1000);
};
};

IE8 は次のように述べてSCRIPT438: Object doesn't support property or methodいます。問題は IE8 だけです。IE がこの文字列を作成できない理由がわかりません。助けてくれてありがとう

4

1 に答える 1

3

varキーワードを使用して変数を宣言する必要があります。そうしないと、古いバージョンのIEは変数を認識せず、破損する可能性があります。

だから変更

prev = "#" + $("#controller0" + sectionId).find(".controller").eq(0).attr("id");
next = "#" + $("#controller0" + sectionId).find(".controller").eq(0).attr("id");

var prev = "#" + $("#controller0" + sectionId).find(".controller").eq(0).attr("id");
var next = "#" + $("#controller0" + sectionId).find(".controller").eq(0).attr("id");

そして、他のブラウザ/IE9と同じようにすべてが機能するはずです

于 2012-11-27T14:29:37.053 に答える