2012-08-07 21 views
5

Mi código es la siguiente:jQuery slideToggle() no funciona en Firefox, funciona en Chrome

jQuery('.cart-module .cart-heading').bind('click', function() { 
    if (jQuery(this).hasClass('active')) { 
     jQuery(this).removeClass('active'); 
    } else { 
     jQuery(this).addClass('active'); 
    } 

    jQuery(this).parent().find('.cart-content').slideToggle('slow'); 
}); 
//--></script> 

Puede probarlo por sí mismo mediante la incorporación rápida de un producto a su carrito como esto https://muddydogcoffee.com/teas/176-organic-crimson-berry-fruit-tisane?device=iphone e ir a la cesta de la compra aquí https://muddydogcoffee.com/shopping-cart.

Al hacer clic en "Estimar envío & Impuestos", debe mostrar el DIV debajo de él. Sin embargo, solo funciona en Chrome y no en Firefox. ¿Qué puedo hacer para arreglar esto?

Gracias.

Respuesta

3

que tenían el mismo problema antes, En realidad no he entendido por qué sucede, pero he encontrado una solución para ello.

No estoy seguro si también funcionará para usted, pero lo que hice fue eliminar la pantalla: ninguna en la hoja de estilo y simplemente la agregué en línea en el html.

Si alguien puede explicar el comportamiento extraño, sin embargo, será realmente útil.

+0

¡Eres un hombre increíble! Estoy tan contento de encontrar una solución para esto. También me gustaría saber la razón, por supuesto. Muchas gracias. – user1477388

0

has necesitado:

$(document).ready(function() { 
    // put all your jQuery goodness in here. 
}); 
+0

Acabo de probar eso y, no, no funciona. – user1477388

+0

PD No rechacé tu publicación – user1477388

2

Agregue event.preventDefault(); y event.stopPropagation(); para que esto funcione en todos los navegadores, incluido Firefox. Ver fragmento a continuación:

jQuery('.cart-module .cart-heading').bind('click', function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    if (jQuery(this).hasClass('active')) { 
     jQuery(this).removeClass('active'); 
    } else { 
     jQuery(this).addClass('active'); 
    } 
jQuery(this).parent().find('.cart-content').slideToggle('slow'); 
}); 
Cuestiones relacionadas