Javascript JS在Chrome中运行良好,但在FireFox中不起作用

Javascript JS在Chrome中运行良好,但在FireFox中不起作用,javascript,jquery,google-chrome,firefox,Javascript,Jquery,Google Chrome,Firefox,这是一个简单的窗口滚动,当用户点击导航项目时会触发,但就我而言,我似乎不明白为什么FF不会识别它,我读过类似的问答,但他们只建议定义var的第一个,我已经这样做了,任何帮助都将不胜感激 代码如下: $("#myNavbar a").on('click', function(){ var hash = this.hash; //make sure this.hash has a value if (hash !== ""){ //prevent default anchor click

这是一个简单的窗口滚动,当用户点击导航项目时会触发,但就我而言,我似乎不明白为什么FF不会识别它,我读过类似的问答,但他们只建议定义var的第一个,我已经这样做了,任何帮助都将不胜感激

代码如下:

$("#myNavbar a").on('click', function(){
var hash = this.hash;

//make sure this.hash has a value
if (hash !== ""){
    //prevent default anchor click behavior
    event.preventDefault();


    //use jQuerys animate() method to add smooth scroll
    $('html, body').animate({
        scrollTop: $(hash).offset().top
    }, 800, function(){

        window.location.hash = hash;
    });
} // end of if
});
这在Chrome中“起作用”,因为Chrome实现了非标准属性

如注释中所述,您应该改用jQuery事件处理程序提供的
event
参数

$("#myNavbar a").on('click', function(event){
    ...
    event.preventDefault();
    ...
});

事件未在该作用域上声明,可能您缺少$(“#myNavbar a”)。在('click',函数(event){上,您是否尝试将
$(document).ready()
包装在事件处理程序周围?谢谢@juvian的帮助。