Javascript 动画滚动到firefox和IE问题

Javascript 动画滚动到firefox和IE问题,javascript,jquery,css,internet-explorer,firefox,Javascript,Jquery,Css,Internet Explorer,Firefox,我正在使用javascript覆盖我的侧菜单,点击后滑到div,而不是直接转到div。我的脚本在chrome上运行良好,但在Firefox或IE上无法运行。有人能告诉我如何修复我的脚本,使其在IE和FF上运行吗 这是我的密码: $('#sidebar a').each(function(){ var href = $(this).attr('href'); console.log(href+" @!#"); $(this)

我正在使用javascript覆盖我的侧菜单,点击后滑到div,而不是直接转到div。我的脚本在chrome上运行良好,但在Firefox或IE上无法运行。有人能告诉我如何修复我的脚本,使其在IE和FF上运行吗

这是我的密码:

 $('#sidebar a').each(function(){
            var href = $(this).attr('href');
            console.log(href+" @!#");
            $(this).click(function () {
                event.preventDefault();
                $('html, body').animate({
                    scrollTop: $(href).offset().top
                }, 1000);
            });

        });
                    </script>
$('#边栏a')。每个(函数(){
var href=$(this.attr('href');
console.log(href+“@!#”);
$(此)。单击(函数(){
event.preventDefault();
$('html,body')。设置动画({
scrollTop:$(href).offset().top
}, 1000);
});
});

我会做完全不同的事情,也许您的代码在事件中失败。preventDefault()。我总是对回调中传递的事件对象执行默认设置

$('#sidebar').on('click', 'a', function(e){
    e.preventDefault();
    $('html, body').animate({
        scrollTop: $($(e.target).attr('href')).offset().top
    }, 1000);
});

检查
$(href)
是否返回预期结果。请始终考虑定义“它不起作用”。顺便说一句,调试它,看看哪个变量没有期望值。看起来调试起来并不难it@A.Wolff我认为这是可以的,因为当你在ie或ff上运行站点时,链接是可以的,但是动画消失了?!?你能提供一个JSFIDLE吗?为什么要使用
if(href==“#团队部分”)
而其他部分使用相同的精确代码???对于跨浏览器支持,需要将事件作为参数传递:
$(this)。单击(函数(事件){…})如前所述,将事件作为参数传递给处理程序,问题解决了:您能给我更多解释我如何使用它吗?我添加了你的代码而不是我的代码,但同样的东西你也可以发布你的html吗?是的,这里有一个我的问题在firefox上不起作用的例子显然你没有阅读关于event.preventDefault()的部分,这一个在firefox中起作用: