Ok he decidido publicar una respuesta ya que había algunas partes de su código que quería abordar
En primer lugar, en lugar de hacer un return false;
al final, puede utilizar la función jQuery event.preventDefault();
. El resultado final es básicamente el mismo, sin embargo, al hacerlo de esta manera, podemos usar jQuery para decirle al ancla que no haga nada desde el principio, antes de ejecutar cualquier otro código.
Mi código Javascript actualización:
$('.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);
});
});
El CSS añadí:
ejemplo
.active {
background-color:#467FD9;
color:#fff;
}
.active a {
cursor:default; /* Don't show the hand cursor */
color:#fff;
}
Un trabajo:
http://jsfiddle.net/dmvcQ/3/
No estoy seguro de si la corriente de HTML marcado tiene algún otro propósito en mente, pero los estilos actuales y functionali Con solo <a href="#" data-region="source-region">Our region</a>
, no es necesario envolverlos en <div>
y <span>
.
Por ejemplo, aquí es el mismo código, con las etiquetas de anclaje sólo: http://jsfiddle.net/dmvcQ/7/
, hágamelo saber si usted tiene alguna pregunta relacionada con la respuesta.
Por favor escriba por qué esto se downvoted de mejorar las respuestas. –
Gracias - ¡Funciona muy bien! ¿Hay alguna manera de tener el primer botón resaltado por defecto? (dado que la zona de texto a la derecha es visible, eso ayudaría a las personas a entender que cada botón está asociado a una zona de texto) – Greg
@Greg he actualizado mi respuesta mate, puede asignar estos valores CSS a una clase o ID, y usar removeClass/addClass métodos pero preguntaste cómo cambiar css con jQuery, así que respondí de esta manera. –