2012-10-21 20 views
1

你好eveyone我正在嘗試使用點擊功能。當用戶點擊按鈕時,會出現第二個文本,第一個文本將顯示爲none,然後用戶再次使用同一個按鈕單擊,這次會顯示第三個文本,並顯示第二個文本,最後再次單擊同一個按鈕。文字將出現第三個顯示無。jquery點擊按鈕和文本的功能

我有另一個按鈕,用戶單擊此按鈕第四個文本將顯示沒有和第三個文本將出現,再次單擊此按鈕第三個文本將顯示沒有第二個文本將出現,最後單擊此按鈕第二將顯示無第一個文本將出現。這裏是我的功能:

$("#slider1next").click(function() { 

     var $next = $(".text:visible").hide().next(); 
     $next.length ? $next.show() : $(".text:first").show(); 

}); 

$("#slider2next").click(function() { 

     var $next = $(".text:visible").hide().next(); 
     $next.length ? $next.show() : $(".text:first").show(); 

}); 

這裏是我的html:

<button id="slider1next" >Clickme</button> 
    <p class="text" id="first_one">This is the first text</p> 
    <p class="text" id="second_one" style="display:none">This is the second text</p> 
    <p class="text" id="third_one" style="display:none">This is the third text</p> 
<p class="text" id="fourth_one" style="display:none">This is the four text</p> 

<br/> 
<button id="slider2next" >Clickme</button> 

,你也可以看到有

http://jsfiddle.net/ganymedes/7kxAE/2/

請幫我

+0

什麼是你的問題? – sdespont

+2

所以你希望第二個按鈕具有另一個相反的功能:http://jsfiddle.net/7kxAE/3/?我只是使用.prev()而不是.next() – sdespont

回答

2

可以使用prev方法和:last選擇:

$("#slider1next").click(function() { 
    var $next = $(".text:visible").hide().next(); 
    $next.length ? $next.show() : $(".text:first").show(); 
}); 

$("#slider2next").click(function() { 
    var $prev = $(".text:visible").hide().prev(); 
    $prev.length ? $prev.show() : $(".text:last").show(); 
}); 

http://jsfiddle.net/dq6rf/

+0

謝謝,但是當我點擊第二個按鈕時,你知道第四個隱藏,然後第三個出現,第三個隱藏和第二個出現,但是當我再次點擊時,我不想讓第一個文本隱藏我的意思是第一個文本像一個不變的文本 – learnmore

+0

@learnmore不客氣,像這樣? http://jsfiddle.net/G54SP/ – undefined

+0

是這樣的,但對於你的查詢我點擊他firts按鈕,當我看到「這第四個文本」,然後我點擊相同的按鈕什麼都不會出現,然後我點擊第二個按鈕,這是有prev屬性不會得到螞蟻文本,你可以看看你的查詢 – learnmore