jQuery/JS 的 window.scroll 在 FireFox 不正常

请问以下这段 jQuery 的 window onscroll 代码,
在 IE、Chrome 正常,滑鼠卷一次,才会 alert 一次。
但在 FireFox 疯狂,滑鼠卷一次,就会 alert 非常多次。

请问此 window onscroll 和 FireFox 不和的问题,要怎么解决?

我是希望 FireFox 能和 IE、Chrome 一样,能够滑鼠卷一次,只要 alert 一次就好。
(若网友愿给有用的提示,我亦会给您点数)

感谢各位。

 <html>
<head runat="server">
    <title></title>
    <script type="text/javascript" 

src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

    <script type="text/javascript">
        $(window).scroll(function () {
            alert('hi, ' + $(window).scrollTop());
        });
    </script>
</head>
<body>
 这里的内容很长(亦可用 C# 去 Response.Write 很长的内容)
</body>
</html>

之前我做的下拉刷新也出现这个问题,当时我在网上找了很多资料。

直接贴代码了:

  var tur = true;
        function haha(){
                     alert("haha"); 
                      tur = true;
                }

        window.onscroll = function(){
             if(tur){ 
                         setTimeout(haha,1000); tur = false;
               }else{
                    }
        } 

这是折中的写法,希望你能够找到更好的解决办法。

  大部分浏览器都是支持鼠标滚轮事件的,所以你可以先订阅鼠标滚轮事件的方法,每当事件被触发时,你能获取一个名为 wheelDelta 的属性,它代表刚才鼠标滚轮改变的大小,其中正值表示滚轮往下滑动,负值表示滚轮往上滑动。数值的绝对值越大,滑动范围越大

  但不幸的是依然有一款浏览器是不支持鼠标滚轮事件的。那就是FireFox。Mozilla 已经实现了一个名为"DOMMouseScroll"的事件的处理,它会传递一个名为 event 且附带了名为 detail 属性的事件参数过来,然而,这个 detail 属性不同于 wheelDelta,它只能返回正值,即只能坚持鼠标滚轮向下滚动的值。


        你的问题我在网上查了,我觉得这句话也许对您有些帮助就复制过来了,你看看,希望能帮到你

这个我给的一点点小意见就是写冗余代码来解决这个兼容错误了,你可以在网上搜一下针对firefox的冗余写法;

当时做的下拉刷新功能,因为多次触发onscroll事件,导致数据库多次连接,影响系统性能。于是才使用了setTimeout做延时绑定业务。

感谢「河北小黄人」、「wolf094014」的回覆。这两天这会再试试,并在这个周末结帖、给点数。
若有其他可参考意见,欢迎提供。这两天的研究结果,我也会继续贴在这。谢谢。