2011-02-05 75 views
0

我使用jQuery插件(link)将外部页面拉到我的主页上的div中,并且每个外部页面都包含一个基于jQuery的水平画廊滑块。在jQuery中通过AJAX加载内容时画廊滑块错误

例子:http://www.iamtimothylong.com/example

你会发现,当外部页面通过AJAX请求加载(点击“书一个”或“书两”)的外部网页停止内,水平滑块运行。

但是,如果静态放置在div中,则水平滑块可以正常工作(因此很明显滑块本身不存在问题)。

任何人都知道解决方案/解决方法?一个人说

“你需要在XHR请求完成后将滑块重新绑定到新元素。在你的AJAX请求的成功处理程序中,执行mScrollBar()绑定。

不幸的是,我是一个编程无知,我需要它以外行人的名义拼写出来。 :)

而AJAX装载机源位于:/js/menu.js

+0

需要查看滑块的代码。 – jondavidjohn 2011-02-05 23:31:06

+0

js/jquery.mCustomScrollbar.js - 脚注中还有一个内联部分(我添加了一个备注供参考) – 2011-02-05 23:36:46

回答

0

我会说这是更换事件的经典案例不与.live('event')

基本上在烧成当JavaScript加载页面时(或者它们被调用时),它会被触发并附加事件处理程序,它会将它们附加到当时存在于页面上的当前存在的元素,所以当你加载新内容时(通过AJAX),这些事件不附加到刚刚加载的新内容事件并与选择器匹配。

为了解决这个问题jQuery有任何匹配现有的DOM元素 dyamically添加将来的一个.live()事件。