jquery - fancybox 中的 Jscrollpane 不起作用

标签 jquery fancybox jscrollpane

我在 fancybox 中使用 jscrollpane 时遇到问题。 尽管经过一番噩梦般的努力,我使自定义滚动条出现,但它仅在我第一次打开灯箱时出现。当我关闭灯箱并尝试再次打开它时,jscrollpane 似乎找不到任何内容,因此无法正常运行。

不断观察 firebug,我注意到当我关闭 lightbox 时,只有 jspScrollable 类(由 jscrollpane 添加)保留下来,但所有额外的 html 都消失了。当我再次打开它时,不再创建额外的 html。看起来这次 jscrollpane 在内容加载之前运行。

这是我的脚本:

    <script type="text/javascript" >

    $(document).ready(function() {

            $("a.enlarge-image").fancybox(
                 {
                   'overlayColor' : '#000',
                   'overlayOpacity' : '0.6',
                   'autoScale' : false,
                   'onComplete' : (function(){
                         $('#fancybox-content').jScrollPane();

            })
        })
    })

     </script>

任何帮助将不胜感激。

最佳答案

我终于解决了这个问题。我首先创建了一个 jscrollpane 对象,每次关闭 fancybox (onClosed) 时都会销毁该对象,并在每次打开 fancybox (onComplete) 时重新创建它。

现在这是我的脚本:

    <script type="text/javascript">
        var scrollpane;
            $(document).ready(function() {

                $("a.enlarge-image").fancybox(
                                        {       
                'overlayColor' : '#000',
                'overlayOpacity' : '0.6',
                'autoScale' : false,
                'onComplete' : (function(){
                    scrollpane = $('#fancybox-content').jScrollPane({showArrows: true, scrollbarWidth : '20'}).data().jsp;
                       }),
                'onStart' : (function(){
                        }),
                'onClosed' : (function() {

                     scrollpane.destroy();
                       })

                    });
                })
                    </script>

这似乎使 fancybox 和里面的 jscrollpane 完美地协同工作。 然而,我在 IE7 和 IE6 浏览器上发现了一个问题。因此,当我关闭覆盖窗口时,我收到此错误:'0.nodeName' 为 null 或不是对象

我认为问题是当我在关闭时销毁滚动 Pane 时,没有声明的变量scrollpane。我只是不知道如何解决这个问题。

请问有什么想法吗?干杯..

关于jquery - fancybox 中的 Jscrollpane 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299846/

相关文章:

javascript - Uncaught ReferenceError : $ is not defined at http://localhost/project/public/user/1/edit:308:9 in Laravel

javascript - 导入 JSON 并转换为数组

javascript - 由于变量范围,jQuery response() 函数不返回任何结果

javascript - 将 curl 查询转换为 jQuery.ajax()

php - Fancybox - 重新加载页面或加载新页面

jquery - 在 fancyBox v3 上启用全屏 Vimeo 视频按钮

jquery - Fancybox 2 标题内的链接

java - 动态添加组件并调用repaint/validate/revalidate

java - 为什么 JTextArea 可以滚动,但不能滚动?

java - 如何防止 JPanel 调整大小以填充 JScrollPane