0
A
回答
2
試試這個http://jsfiddle.net/9J5Fg/2/
還是非常乾淨的CSS3版本http://jsfiddle.net/9J5Fg/3/
1
你可以寫一個單一的點擊事件來處理這個.. 只需添加類既div的,它應該工作的罰款。 。
JS
$('#tb1 , #tb2').click(function() {
$('#box-1, #box-2').stop().animate({"height": '0px'}, 400);
if ($('#' + this.className).height() == 0) {
$('#' + this.className).stop().animate({ "height": '50px' }, 400);
}
});
HTML
<div id="btns">
<span id="tb1" class="box-1">Toggle box-1</span>
<span id="tb2" class="box-2">Toggle box-2</span>
</div>
1
正是你需要的:)
首先你必須確定被點擊的鏈接和內容框中這鏈接指。之後,你可以切換它的高度。 然後,你必須關閉其他人。
$('#tb2, #tb1').click(function() {
var id = this.id.substr(-1),
$box = $('#box-' + id),
height = $box.height();
// toggle box height
$box.stop().animate({"height": (height == 50 ? 0 : 50) + 'px'}, 400);
// close other boxes
$('#container div').not($box).stop().animate({"height": '0px'}, 400);
});
如果你看看this demo你會看到,如果你有超過2盒此代碼的工作,你只需要點擊選擇更改爲$('#btns span')
。
1
更抽象一點..可以,如果你願意改變你的HTML
$('#btns span').on('click', function() {
var btnId = $(this).attr('id'),
$container = $('#box-' + btnId.substr(2)),
open = $container.height() > 0;
$('#container div').not($container).stop(true, true).animate({"height": '0px'}, 400);
$container.stop(true, true).animate({"height": (open ? '0px' : '50px')}, 400);
})
相關問題
- 1. 點擊,撥動,jQuery的
- 2. jQuery的 - 撥動問題
- 3. jQuery的數據撥動
- 4. 撥動jQuery的動畫收到錯誤
- 5. JQUERY撥動兒童UL
- 6. jQuery的dataTable的搜索得出撥動
- 7. 獲取的撥動開關jQuery Mobile的
- 8. jQuery的fadeTo與撥動導航
- 9. jQuery的 - 如何委派撥動
- 10. jQuery的,如果檢查撥動
- 11. jQuery的撥動開關programmatcally上關閉
- 12. jquery ajax如何拖動回撥
- 13. Jquery Ui Tab回撥?
- 14. jquery單獨撥號
- 15. 角撥動類
- 16. 撥動HTML值
- 17. DIV - 撥動
- 18. jQuery Mobile的 - 動態添加撥動開關
- 19. 在撥入/撥出電話時自動打開撥號盤
- 20. jQuery的基本撥動唯一的工作的一種方式
- 21. 三通類撥動
- 22. 自動撥號,iphone
- 23. 撥動保證金
- 24. 輕鬆撥動到的IntelliJ
- 25. 從左側滑動撥動
- 26. 最新Spotify更新:自動撥號腳本打破
- 27. jQuery show hide多個鏈接滑動撥動div
- 28. jQuery的只有撥動1元我們的7
- 29. Jquery Anything Slider Nav Bar回撥
- 30. 位置更新回撥
嘗試再次單擊該鏈接,你會看到,編碼甚至更好它不關閉。 –
@RicardoLohmann嘗試新的 – xception
完美的作品!我甚至沒有想過使用CSS3,因爲我不需要在這個項目上支持IE。謝謝。 – Brian