jQuery SlideToggle()在FireFox中不起作用,适用于Chrome

时间:2012-08-07 23:23:51

标签: javascript jquery firefox google-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> 

您可以通过快速将产品添加到购物车https://muddydogcoffee.com/teas/176-organic-crimson-berry-fruit-tisane?device=iphone并在此处转到购物车https://muddydogcoffee.com/shopping-cart来自行测试。

当您点击“Estimate Shipping&amp; Taxes”时,它应显示其下方的DIV。但是,它仅适用于Chrome,而不适用于Firefox。我该怎么做才能解决这个问题?

感谢。

3 个答案:

答案 0 :(得分:3)

之前我遇到过同样的问题,我还没有真正理解为什么会这样,但我找到了解决方法。

我不确定它是否也适合你,但我所做的是删除了样式表中的display:none,并将其添加到html内联。

如果有人能够解释这种奇怪的行为,那将会非常有用。

答案 1 :(得分:2)

添加event.preventDefault();event.stopPropagation();可以在所有浏览器中使用,包括Firefox。请参阅以下代码段:

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');
});

答案 2 :(得分:0)

你试过

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