jQuery'滚动'没有触发

时间:2017-04-07 19:05:17

标签: javascript jquery html

我有以下内容:

 var onScroll = function () {
        alert('scroll');
 };
 scrollArea = $('body');
 scrollArea.on('scroll', onScroll);

我可以$('body').scrollTop(400),身体滚动得很好,但是当我手动滚动时,alert永远不会被调用。可能导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:5)

滚动页面时,window滚动而不是body。所以将其更改为$(window).on('scroll', onScroll);

编辑:如果您想将其body专门绑定,可以使用document.body.onscroll = onScroll;进行操作。 但请确保在这种情况下不将任何onscroll事件绑定到window 。如果您这样做,我们将忽略document.body.onscroll并收听window.onscroll

在小提琴链接here上查看此操作。

答案 1 :(得分:1)

不要使用$(' body'),而是使用$(文档)或$(窗口)来捕捉滚动,如下所示:

SELECT     a.ItemCode, a.AvgPrice,  t.PriceList,  a.ComplimentaryItemCode,
                          (SELECT     AvgPrice
                            FROM          MATERIALS AS a
                            WHERE      (ItemCode = ComplimentaryItemCode)) AS AvgPriceComplimentary
FROM         MATERIALS AS a LEFT OUTER JOIN
                      PRICES AS t ON t.ItemCode = a.ItemCode AND t.PriceList = 1
WHERE     (T.PriceList <> 107) AND (T.PriceList <> 108)

这是一个有效的jsFiddle: https://jsfiddle.net/4rrm3myL/1/