Tamam bir cevap sonrası karar:
if(!$(this).closest('.source-title-box').hasClass('source-selected'))
{
$('.source-title-box').toggleClass('source-selected');
}
güncellenmiş keman deneyin (güncellendi) Tıklama işleyicisi için bu satırları ekleyin adreslemek istedim.
Her şeyden önce, bir return false;
yerine, jQuery event.preventDefault();
işlevini kullanabilirsiniz. Son sonuç temelde aynıdır, ancak bu şekilde jQuery'yi başka bir kodu çalıştırmadan önce en başında hiçbir şey yapmamaya çapa söylemek için kullanabiliriz.
My güncellenmiş Javascript kodu:
$('.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);
});
});
ekledim CSS:
.active {
background-color:#467FD9;
color:#fff;
}
.active a {
cursor:default; /* Don't show the hand cursor */
color:#fff;
}
A Çalışma örneği:
http://jsfiddle.net/dmvcQ/3/
emin değilim geçerli HTML eğer markup'ın aklında başka bir amacı var, ancak şu anki stilleri ve functionali Ty sadece <a href="#" data-region="source-region">Our region</a>
ile elde edilebilir, bunları <div>
ve <span>
içine sarmanız gerekmez. Burada Örneğin
sadece çapa etiketleriyle aynı kod şudur: http://jsfiddle.net/dmvcQ/7/
Eğer cevap ile ilgili herhangi bir sorunuz varsa bana bildirin.
yazınız. –
Teşekkürler - Harika çalışıyor! Varsayılan olarak vurgulanan ilk düğmeye sahip olmanın bir yolu var mı? (sağdaki metin bölgesi görünür olduğundan, bu, insanların her bir düğmenin bir metin bölgesiyle ilişkili olduğunu anlamalarına yardımcı olur) – Greg
@Greg i yanıt arkadaşımı güncelledi, bu css değerlerini bir sınıfa veya kimliğe atayabilir ve removeClass'ı kullanabilirsiniz./addClass yöntemleri ama jss ile css nasıl değiştirileceğini sordunuz, bu yüzden bu şekilde cevap verdim. –