jQuery - Slidetoggle有效但不适用于Firefox

时间:2013-01-08 14:46:23

标签: jquery slidetoggle

<script>
jQuery(document).ready(function($){
$("#panel").click(function(){ 

event.preventDefault();
$("#panel_stats").slideToggle("slow");

});
});
</script>

我可以确认这适用于 Chrome Safari ,但不是在 Internet Explorer Firefox 中。我已经读过一个内联HTML“display:none”可以工作,但最终却没有。

删除event.preventDefault();做了诀窍,谢谢大家!

4 个答案:

答案 0 :(得分:1)

<script>
$(document).ready(function(){
    $("#panel").click(function(){ 
       $("#panel_stats").slideToggle("slow");    
    });
});
</script>

尝试删除event.preventDefault();并将面板定义为#panel.panel

DEMO: http://jsfiddle.net/enve/L4nXy/

答案 1 :(得分:1)

您可以保留event.preventDefault();

但添加event.stopPropagation();

然后它将在Firefox和所有浏览器中运行。

答案 2 :(得分:0)

尝试使用jQuery的.on ...

$("#panel").on('click', function(){ 
       $("#panel_stats").slideToggle("slow");    
});

问候。

答案 3 :(得分:0)

我尝试删除event.preventDefault,但随后它搞砸了Chrome上的行为。

我最终做到了这一点:

    $(function () {
        $('.faqs dd').hide();
        $('.faqs dt')
            .click(function () {
                if (!(navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) {
                    // not firefox
                    event.preventDefault();
                }
                $(this).next().slideToggle('normal');
            });
    });