あなたのコードに対処したい部分があったので、回答を投稿することにしました。
まずreturn false;
、最後に a を実行する代わりに、jQueryevent.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 マークアップが他の目的を念頭に置いているかどうかはわかりませんが、現在のスタイルと機能は と でラップする必要がないだけで実現でき<a href="#" data-region="source-region">Our region</a>
ます。<div>
<span>
たとえば、アンカー タグのみを含む同じコードを次に示します: http://jsfiddle.net/dmvcQ/7/
回答に関してご不明な点がございましたら、お知らせください。