que tienen una función de JavaScript que tiene este aspecto:¿Establecer clase con jquery?
function UpdateFilterView(){
if(_extraFilterExists){
if($('#F_ShowF').val() == 1){
$('#extraFilterDropDownButton').attr('class', "showhideExtra_up");
$('#extraFilterDropDownButton').css("display", "block");
if($('#divCategoryFilter').css("display") == 'none'){
$('#divCategoryFilter').show('slow');
}
return;
}
else{
if($('#divCategoryFilter').css("display") == 'block'){
$('#divCategoryFilter').hide('slow');
}
$('#extraFilterDropDownButton').css("display", "block");
$('#extraFilterDropDownButton').attr('class', "showhideExtra_down");
return;
}
}
else{
if($('#divCategoryFilter').css("display") != 'none'){
$('#divCategoryFilter').hide('fast');
}
$('#extraFilterDropDownButton').css("display", "none");
}
}
Esto se desencadena por el siguiente código (desde dentro del $ (document) ready (function() {):
$('#extraFilterDropDownButton').click(function() {
if($('#F_ShowF').val() == 1){
$('#F_ShowF').val(0);
}
else{
$('#F_ShowF').val(1);
}
UpdateFilterView();
});
El HTML de esto es fácil:
<div id="divCategoryFilter">...</div>
<div style="clear:both;"></div>
<div id="extraFilterDropDownButton" class="showhideExtra_down"> </div>
tengo dos problemas con este:
Cuando el panel está oculto y presionamos el botón div (extraFilterDropDownButton), la parte superior izquierda de la página parpadeará y luego el panel se animará hacia abajo.
Cuando se muestra el panel y presionamos el botón div, el panel se ocultará ('lento'), pero el botón no cambiará a la clase correcta incluso cuando lo configuremos en el script UpdateFilterView.
La clase correcta se encuentra en el botón cuando se cierne, esto se establece con el siguiente código:
$("#extraFilterDropDownButton").hover(function() {
if($('#divCategoryFilter').css("display") == 'block'){
$(this).attr('class','showhideExtra_up_hover');
}
else{
$(this).attr('class','showhideExtra_down_hover');
}
},
function() {
if($('#divCategoryFilter').css("display") == 'block'){
$(this).attr('class','showhideExtra_up');
}
else{
$(this).attr('class','showhideExtra_down');
}
});
Sólo una sugerencia: su pregunta podría tener una mejor oportunidad de conseguir respondió aquí si publicó un ejemplo de código ** mínimo ** que demostraría su problema, preferiblemente utilizando [jsFiddle] (http://jsfiddle.net/). – rsp
Para resumir ... ¿solo está pidiendo un botón que revelará un div oculto y luego ocultará el div cuando se muestre? –
* "pero el botón no cambiará a la clase correcta" * - ¿Cuál es la clase correcta ...? * "Cuando el panel está oculto" * - no entiendo lo que quiere decir con panel ...? –