【问题标题】:when creating dynamic content using jquery ajax, scrollbar not appearing使用 jquery ajax 创建动态内容时,滚动条不出现
【发布时间】:2014-06-02 11:50:00
【问题描述】:

我有一些 jquery 报告,其中我正在使用 json 创建一些动态 html 内容(嵌套的 div、span、label)。 它使用 jquery,mCustomScrollbar,commons,jqueryui。

我有一个<div>...//some static code </div> 在这种情况下一切正常。

但是当我在这个<div> // dynamic code using ajax </div> 之间创建一些代码时。它的滚动条没有出现。

但如果我最小化、最大化浏览器窗口或“萤火虫”出现的滚动条。

是因为动态css样式生成吗? 我是 jquery css 帮助的新手

【问题讨论】:

  • 请缩小范围并尝试在 jsFiddle 中重现问题。很难理解这个问题,用这么少的信息来解决它更难。
  • 检查这个插件的文档,一切都解释清楚了......幸运的是,这个插件接受了某种委托

标签: javascript jquery html css ajax


【解决方案1】:

如果您引用的滚动条来自 mCustomScrollbar 插件,则在将 ajax 内容插入 DOM 后,您将需要使用其 update 方法。

$(selector).mCustomScrollbar("update");

请参阅http://manos.malihu.gr/jquery-custom-content-scroller/#methods-section 上的文档

【讨论】:

  • 或使用live/liveSelector选项
  • @A.Wolff 我不认为问题出在新的滚动条上(因为它在调整大小时是固定的)..
  • 我猜 OP 已经在调整窗口大小时调用了更新插件方法。但可以肯定的是,我只是在猜测,因为 OP 没有提供足够的信息。编辑:哦,我明白你现在的意思了,关于确实是新内容,而不是新的可滚动元素
  • @A.Wolff 由updateOnContentResize 选项处理,默认为true
  • 是的,看来我误解了问题,我的错!
【解决方案2】:

我有同样的问题,我通过使用destroy 方法解决了这个问题,该方法也由mCustomScrollbar 提供

当我将新内容添加到选择器时,我会破坏 mCustomScrollbar

$(selector).mCustomScrollbar("destroy");

然后我再次重建它;你可以在这个演示中检查销毁和重建

http://manos.malihu.gr/repository/custom-scrollbar/demo/examples/disable_destroy_example.html

顺便说一句,update 方法对我不起作用,因为它提到 updateOnContentResize 默认情况下是 true 调用更新方法,我真的不知道是什么问题。

【讨论】:

  • 您是否找到了“updateOnContentResize”不起作用的原因?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多