0

我正在尝试在我的网站上的 div 上实现滚动条插件,但我遇到了一些问题。首先它应该是这样工作的:

jQuery(document).ready(function ($) {
    "use strict";
    $('.chat-messages').perfectScrollbar({suppressScrollX: true});
  });

但我只能让它像这样工作:

$(window).load(function() {
    "use strict";
    $('.chat-messages').perfectScrollbar({suppressScrollX: true});
});

但是使用window.load脚本似乎并不是一直都在工作,或者至少滚动条并不总是出现。

我对 js 或 jquery 不是很熟悉,但我将 src 文件插入到perfect-scrollbar.js一个文件夹中,我通常这样调用它:<script src="http://domain.com/javascript/perfect-scrollbar.js"></script>在标题上并将我上面描述的代码与window.load放在它之后<script></script>。我假设这是与另一个准备好的文档发生冲突,所以我在网上搜索了解决方案和其他加载它的方法,我发现没有冲突,并尝试像这样实现:

$.noConflict();
jQuery( document ).ready(function( $ ) {
     "use strict";
   $('.chat-messages').perfectScrollbar({suppressScrollX: true});
   });
});

但仍然没有结果,唯一的作用就是阻止网站的所有 jquery 工作。谁能帮我这个?提前致谢

4

3 回答 3

1

我已经测试过了,document.ready应该可以正常工作。

CSS

.chat-messages {
    position: fixed;
    height: 300px;
    overflow: hidden;
}

编辑 :

由于您将其与其他脚本结合使用,因此可能尝试将您的选择器声明为最顶部的变量。

jQuery

$(function () {
    var $chat = $('.chat-messages');

    ...other scripts/functions... 

    $chat.perfectScrollbar({suppressScrollX: true});
});

这是一个小提琴

于 2015-03-01T23:09:26.713 回答
0

问题与

jQuery(document).ready(function ($) {
    "use strict";
    $('.chat-messages').perfectScrollbar({suppressScrollX:    true});
});

是您$通过使用该标识符命名匿名函数的参数而在本地范围内留下未定义。jQuery 不向该函数传递任何参数,但您对参数的声明掩盖了$. 如果您没有使用无冲突模式,那么$将已经在全局范围内可用,因此以下应该可以工作:

$(document).ready(function () {
    "use strict";
    $('.chat-messages').perfectScrollbar({suppressScrollX: true});
});

顺便说一句,noConflict 的目的是避免与可能依赖于全局定义的其他代码发生冲突,该全局定义$不同于 jQuery$jQuery.

于 2015-03-01T22:28:37.227 回答
0

非常感谢你们的帮助,我在这里找到了这个解决方法:[src]

var visible = true;
setInterval(
function()
{
    if(visible)
        if($('#element').not(':hidden'))
        {
            visible = false;
            "use strict";
            $('.chat-messages').perfectScrollbar({suppressScrollX: true});
        }
    else
        if($('#element').is(':hidden'))
        {
            visible = true;
            // do something
        }
}, 1000);
于 2015-03-03T19:40:58.120 回答