好吧,我決定發佈一個答案,因爲有你的代碼的某些部分我想要解決。
首先,不要在最後做一個return false;
,而可以使用jQuery event.preventDefault();
函數。最終的結果基本上是相同的,但是通過這種方式,我們可以使用jQuery在開始運行其他代碼之前告訴錨點不做任何事情。
我更新的Javascript代碼:
$('.source-title-box a').click(function(event) {
// Stop the default anchor behaviour
event.preventDefault();
// Lets check if the clicked link is already active
// And if it is active, don't let them click it!
if($(this).closest('div').hasClass('active')) {
return false;
}
// Now lets remove any active classes that exist
$('.active').toggleClass('active');
// And apply an active class to the clicked buttons
// parent div
$(this).closest('div').toggleClass('active');
var region = $(this).attr('data-region');
$('.textzone:visible').fadeOut(500, function() {
$('#' + region).fadeIn(500);
});
});
我添加的CSS:
.active {
background-color:#467FD9;
color:#fff;
}
.active a {
cursor:default; /* Don't show the hand cursor */
color:#fff;
}
工作示例:
http://jsfiddle.net/dmvcQ/3/
我不知道如果當前的HTML標記有其他目的,但目前的風格和功能ty只需要<a href="#" data-region="source-region">Our region</a>
即可實現,您無需將它們包裝在<div>
和<span>
中。
例如,下面是相同的代碼,只用錨標籤:http://jsfiddle.net/dmvcQ/7/
讓我知道如果您對回答任何問題。
請寫出這是爲什麼downvoted改進的答案。 – 2012-08-15 09:11:31
謝謝 - 它工程太棒了!有沒有辦法讓第一個按鈕默認突出顯示? (因爲右側的文本區域是可見的,這將幫助人們瞭解每個按鈕都與文本區域相關聯) – Greg 2012-08-15 09:15:39
@Greg i更新了我的答案配對,您可以將這些css值分配給類或id,並使用removeClass/addClass方法,但你問如何改變與CSS的CSS,所以我回答了這種方式。 – 2012-08-15 10:02:22