2012-10-01 51 views
0

我已經幾乎得到它的工作,它只是第一個和第二個標題,弄亂了,我不知道爲什麼!我玩過if語句和:visible選擇符等,看看是什麼讓它發生變化,但無法理解它。
你可以看到這個小提琴我的意思:jsfiddle.net/MrLuke/QSj4k/33jQuery圖像滑塊標題問題,顯示錯誤

如果有一個第一個標題就說明,但第二個將不會出現,它會顯示在第三字幕代替第二,以及第三顯示。這讓我很困惑。看來第1和第2個標題搞砸了,然後其他任何標題都會正確顯示。

//DISPLAY OR HIDE FIRST CAPTION 
var title = $('.slide:not("first")').children('img').attr('title'); 
if (title == "") { 
    $('#slide_caption').fadeOut(); //HIDE CAPTION IF NO ALT TEXT 
} else { 
    $('#slide_caption').fadeIn(); 
    $('#slide_caption').html('<span>' + title + '</span>'); //SHOW ALT TEXT CAPTION 
} 

(function imageTransition() { 
setTimeout(function() { 
    $('.slide:visible').fadeOut("slow"); // FADE OUT VISIBLE IMAGE 
    if ($('.slide:visible').next('.slide').size("slow") < 1) { 
     $('.slide:first').fadeIn(); // FADE IN FIRST IMAGE  

     var title = $('.slide:visible').children('img').attr('title'); 
     if (title == "") { 
      $('#slide_caption').fadeOut(); //HIDE CAPTION IF NO TITLE TEXT 
     } else { 
      $('#slide_caption').fadeIn(); 
      $('#slide_caption').html('<span>' + title + '</span>'); 
     } 
    } else { 
     $('.slide:visible').next('.slide').fadeIn("slow"); // FADE IN NEXT IMAGE 

     var title = $('.slide:visible').next('.slide').children('img').attr('title'); 
     if (title == "") { 
      $('#slide_caption').fadeOut(); //HIDE CAPTION IF NO TITLE TEXT 
     } else { 
      $('#slide_caption').fadeIn(); 
      $('#slide_caption').html('<span>' + title + '</span>'); 
     }    

    } 

    imageTransition(); //TRIGGER FUNCTION AGAIN 
}, Speed); //Xms INTERVAL BEFORE FUNCTION RUNS AGAIN 
})(); 

這是查看是否圖像具有title屬性的部分,然後將其插入一個span標籤之間顯示的標題:

var title = $('.slide:visible').children('img').attr('title'); 
     if (title == "") { 
      $('#slide_caption').fadeOut(); //HIDE CAPTION IF NO ALT TEXT 
     } else { 
      $('#slide_caption').fadeIn(); 
      $('#slide_caption').html('<span>' + title + '</span>'); 
     } 

和HTML:

<div id="slide_wrapper"> 

    <p id="slide_controls"> 
     <span id="prev-but"><img src="http://webbossuk.com/admin/JS/webboss-slider/imgs/but_prev.png" alt="Previous" /></span> 
     <span id="next-but"><img src="http://webbossuk.com/admin/JS/webboss-slider/imgs/but_next.png" alt="Next" /></span> 
    </p> 


<div id="image-container"> 

    <div class="slide"> 
     <img class="slide_img" src="http://www.webbossuk.com/uploads/features_banner_shop.jpg" alt="Slide 1" title="" /> 
    </div> 

    <div class="slide"> 
     <a href="#"> 
     <img class="slide_img" src="http://www.webbossuk.com/uploads/features_banner_podcasts.jpg" alt="Slide 2" title="2" /> 
     </a> 
    </div> 

    <div class="slide"> 
     <img class="slide_img" src="http://www.webbossuk.com/uploads/features_banner_page_ed.jpg" alt="Slide 3" title="3" /> 
    </div> 

    <div class="slide"> 
     <img class="slide_img" src="http://www.webbossuk.com/uploads/features_banner_members.jpg" alt="Slide 4" title="4" /> 
    </div> 

    <div class="slide"> 
     <img class="slide_img" src="http://www.webbossuk.com/uploads/features_banner_more.jpg" alt="Slide 5" title="5" /> 
    </div> 

    <p id="slide_caption"><span></span></p> 
</div> 

</div>​ 

我已經提到過它,但爲了以防萬一,here's the fiddle看到一個活生生的例子(和問題)
任何人都可以看到爲什麼第一個和第二個標題不工作像其餘?

+0

好你的第一個標題不顯示是因爲你沒有第一張幻燈片的標題 – Huangism

+0

@黃色 - 我知道在這裏,我正在改變和試驗,沒有它 – MrLewk

+0

我的答案也能解決你的問題嗎? – Huangism

回答

1

這裏

http://jsfiddle.net/QSj4k/35/

我加了標題第一張幻燈片,並在第二滑,你有我去掉一個錨標記和它的作品。我還沒有測試第一個標題空

剛剛測試第一個空它的工作原理,你只是有額外的錨點。因爲錨IMG的不再。孩子()(這是直接孩子).slide,因此它沒有工作

如果你真的想那麼錨與.find取代。孩子喜歡這裏http://jsfiddle.net/QSj4k/37/

+0

啊謝謝你!這甚至沒有發生在我身上(顯然!)。我確實需要有錨的選項,所以第二個小提琴是我需要的答案。 .find是一個有用的記住,我還沒有遇到過,但在我的jQuery冒險。 – MrLewk