[OK]を私が取り組んでいたことです。
まず、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;
}
Aワーキング例:
http://jsfiddle.net/dmvcQ/3/
を現在のHTML場合、私はわからないんだけどマークアップには他の目的もいくつかありますが、現在のスタイルと機能性<a href="#" data-region="source-region">Our region</a>
を<div>
と<span>
にラップする必要はありません。ここで例えば
はちょうどアンカータグで、同じコードです:http://jsfiddle.net/dmvcQ/7/
は、あなたが答えについて質問があるなら、私に教えてください。
を入力してください。 –
ありがとう - それは素晴らしい動作します!最初のボタンをデフォルトでハイライト表示する方法はありますか? (右側のテキストゾーンが表示されているので、各ボタンがテキストゾーンに関連付けられていることを人々が理解するのに役立ちます) – Greg
@Greg私の回答メイトを更新しました。これらのcss値をクラスまたはIDに割り当て、removeClass/addClassメソッドを使用していましたが、jQueryを使用してCSSを変更する方法を尋ねられました。 –