2012-02-14 15 views
9

"#business" está actualmente configurado en segundo plano: # 323232; ¿Cómo puedo cambiarlo a # 000; después de hacer clic en "#business" y volver a 323232 una vez que se cierra el menú?Cómo cambiar la propiedad css utilizando jquery con este código

$(document).ready(function() { 

    $("#business").click(function(){ 
     jQuery.fx.off = true; 
     $("#businessmenu").toggle(""); 
    }); 

    $('html').click(function() { 
     $("#businessmenu").hide(""); 
    }); 

    $('#business').click(function(event){ 
     event.stopPropagation(); 
    }); 

}); 

Aquí es el html:

<a href="#" id="business">Biz name</a> 
<div id="businessmenu"> 
    <a href="help.html">Help</a> 
</div> 

Respuesta

28

Usted puede utilizar el método css para cambiar una propiedad CSS (o varias propiedades si es necesario):

$("#business").click(function(event){ 
    jQuery.fx.off = true; 
    $("#businessmenu").toggle(""); 
    $(this).css("background-color", "#000"); 
    event.stopPropagation(); 
}); 
$('html').click(function() { 
    $("#businessmenu").hide(); 
    $("#business").css("background-color", "#323232"); 
}); 

Nota que he combinó los 2 oyentes de eventos que había enlazado al #business, ya que no hace ninguna diferencia vincular el uno.

Como nota al margen, ¿hay alguna razón por la que está pasando una cadena vacía al hide? Eso no debería ser necesario.

+0

Eso funcionó bien con 1 excepción ... ¿no volvió a # 323232 en #business? – Josh

+0

@Josh - Ahh, mira mi edición. Lo tenía estableciendo la propiedad CSS en '# businessmenu' en lugar de' # business'. –

+0

Eres el hombre, gracias :) – Josh

1

La función css se utiliza para cambiar las propiedades CSS como fondo.

$('html').click(function() { 
    $('#businessmenu').hide(""); 
    $('#busniessmenu').css('background-color', '#323232'); 
}); 

$('#business').click(function(event){ 
    event.stopPropagation(); 
    $(this).css('background-color', '#000'); 
}); 
3

Si desea cambiar el fondo de un elemento (en su caso "#business") a un color, sólo tiene que hacer:

$("#business").css({ 
    "background": "#000" 
}); 

pero no estoy seguro de lo que entendemos por el "menú", ¡probablemente debería mostrarnos el código de su HTML!

+0

Pongo el html arriba ... Esencialmente haces clic en #business y muestra "#businessmenu" – Josh

Cuestiones relacionadas