2011-06-02 75 views
0

基本上得到這一點的代碼,在ie8 &低於工作。jquery .next *?*問題

自動更改會淡出當前的文本塊,但不會淡入新文本,這使得我認爲它正在播放的.next(),因爲單擊數字(.click函數)可以正常工作。

的jQuery:

function doSlideshow() { 
    if ($('.image_links a.selected').attr("rel") == "five") { 
     the = $('.image_links a:first'); 
    } else { 
     the = $('.image_links a.selected').next('a'); 
    } 
    $('.image_links a.selected').removeClass("selected"); 
    $(the).addClass("selected"); 
    var theNum = $(the).attr("rel"); 
    $('.image_area .images img:not(.visible)').removeClass().addClass("reset"); 
    $('.image_area .images img#' + theNum).removeClass().addClass("que"); 
    $('.image_area .images img.visible').fadeOut(500, function() { 
     $('.image_area .images img.visible').removeClass().attr("style", "display:block;").addClass("reset"); 
     $('.image_area .images img.que').removeClass("que").addClass("visible") 
    }); 
    $('.image_area .content .text').fadeOut(); 
    $('.image_area .content .text.' + theNum).fadeIn(); 
    thistimeout = setTimeout('doSlideshow()', 6000); 
    return false; 
} 
$(function() { 
    thistimeout = setTimeout('doSlideshow()', 6000); 
    $('.image_area .images img').removeClass().addClass("reset"); 
    $('.image_area .images img#one').removeClass().addClass("visible"); 
    $('.image_links a').click(function() { 
     clearTimeout(thistimeout); 
     if ($(this).hasClass("selected")) { 
      return false; 
     } 
     $('.image_links a.selected').removeClass("selected"); 
     $(this).addClass("selected"); 
     var theNum = $(this).attr("rel"); 
     $('.image_area .content .text').fadeOut(); 
     $('.image_area .content .text.' + theNum).fadeIn(); 
     $('.image_area .images img:not(.visible)').removeClass().addClass("reset"); 
     $('.image_area .images img#' + theNum).removeClass().addClass("que"); 
     $('.image_area .images img.visible').fadeOut(500, function() { 
      $('.image_area .images img.visible').removeClass().attr("style", "display:block;").addClass("reset"); 
      $('.image_area .images img.que').removeClass("que").addClass("visible") 
     }); 
     thistimeout = setTimeout('doSlideshow()', 6000); 
     return false; 
    }); 
}); 

這裏是鏈接: http://b2j3new.zen-host.com 受影響的區域是頂級圖像轉換。在webkit/gecko中正常工作

Mucho unaato!

+3

不要將字符串傳遞給'setTimeout'。 – SLaks 2011-06-02 16:41:44

+0

嗨SLaks,我已經拿出了字符串,並將其設置爲只是功能,仍然沒有運氣..謝謝反饋。 – rickyduck 2011-06-02 16:49:30

回答

1

嘗試更換(2處)

thistimeout = setTimeout('doSlideshow()', 6000); 

有:

thistimeout = setInterval(function() {doSlideshow();}, 6000); 

從doSlideshow刪除:

thistimeout = setTimeout('doSlideshow()', 6000); 

而變化:

clearTimeout(thistimeout); 

要:

clearInterval(thistimeout); 

讓我知道是否有幫助。

+0

嗨仁,不幸的是,也沒有工作,它看起來像函數正在工作 - 因爲他們都fadeOut,但接下來的元素不淡入。感謝您的持續幫助! – rickyduck 2011-06-03 05:22:55

0

它看起來像IE 8沒有運行你doSlideshow功能。

這是一個遠射,但是你在javascript中缺少了幾個分號。我以前看過IE對這類東西很敏感,但是就像我說的那樣,這是一個觸手可及的東西。

修復兩行不以分號結尾的行。

$('.image_area .images img.que').removeClass("que").addClass("visible") 

$('.image_area .images img.que').removeClass("que").addClass("visible") 
+0

嗨,謝謝你的迴應。我放棄了,但無濟於事。很奇怪! – rickyduck 2011-06-02 17:05:13

+0

您是否嘗試過驗證標記? IE也被稱爲與js混合無效標記奇怪的事情。 – 2011-06-02 17:13:57

+0

這並沒有解決它:(哇這是痛苦的!哈 – rickyduck 2011-06-02 17:20:31