1

我有一个带有 CSS“溢出:滚动”属性的 div。通过 jQuery 方法 html 插入新内容时,会触发滚动事件。为什么会这样,我该如何防止呢?因为我实际上并没有滚动,只是插入......

http://jsfiddle.net/qWckG/

4

2 回答 2

2

它触发(正确)是因为滚动位置从 100 变为 0。

您可以尝试一些丑陋的解决方法:

http://jsfiddle.net/qWckG/3/

于 2012-06-10T20:00:31.400 回答
1

您不需要像上述状态那样的任何解决方法。这不起作用的原因是您创建布局的方式。当您插入“jau”时,您将删除包含它的 800px div。这样做的效果是,当您仅用文本替换它时,该 div 不再存在,并且它重置了高度容器。这会导致滚动条消失,从而调用该'scroll'方法。

您需要:

换行jau<div> jau </div>或:

$('#scrollWrapper').unbind('scroll');
$('#scrollWrapper').html('jau', function(){
  //rebind the scroll in the callback.
  $('#scrollWrapper').on('scroll', function(){
    alert("we have scrolled");
  });
});
于 2012-06-10T20:04:46.737 回答