2013-01-17 16 views
1

如何讓下面的代碼更簡單,更少?如何使代碼更簡單,如果我需要點擊一個eq(0)顯示b eq(0)隱藏其他,一個eq(1)顯示b eq(1)隱藏其他..?

謝謝。

<div class="btn"><div>0</div><div>1</div><div>2</div></div> 
<div class="content"><div>0</div><div>1</div><div>2</div></div> 

$('.btn div:eq(0)').click(function(){ 
    $('.content div').hide(); 
    $('.content div:eq(0)').show(); 
}); 
$('.btn div:eq(1)').click(function(){ 
    $('.content div').hide(); 
    $('.content div:eq(1)').show(); 
}); 
$('.btn div:eq(2)').click(function(){ 
    $('.content div').hide(); 
    $('.content div:eq(2)').show(); 
}); 
$('.btn div:eq(3)').click(function(){ 
    $('.content div').hide(); 
    $('.content div:eq(3)').show(); 
}); 

回答

2

試試這個

$('.btn div').click(function(){ 
    $('.content div').hide(); 
    $('.content div:eq('+$(this).index()+')').show(); 
}); 

jsfiddle

+0

感謝您的回覆! – user1775888

1

你可以做這樣的事情:

var numClicked = ''; 

$('.btn div').on('click', function() { 
    numClicked = $('.btn div').index(this); 
    $('.content div').hide(); 
    $('.content div').eq(numClicked).show(); 
}); 

儘管我不能完全記得它是如何完成的,但還有更好的辦法。

+0

感謝您的回覆! – user1775888

+0

@ user1775888這或多或少與我的答案完全相同,但效率較低,因爲有更多的調用'$()'。 –

+0

@ user1775888沒問題! –

相關問題