使用JQuery更改CSS无法正常工作

时间:2015-04-17 09:57:48

标签: javascript jquery html css

我已经编写了一个脚本来更改div的一些CSS属性。我尝试过在谷歌上找到的两种方法,但它们都不起作用。我已经彻底阅读了这些例子,但我不知道为什么这样做不起作用。

如果#rightsection中的内容较少,则#leftsection中有图片,#rightsection会附加到#contentpage的底部。但是如果#rightsection中的内容太多,则内容会溢出。所以我想在溢出时检测到滚动时更改为position:absoluteposition:static

我对JQuery并不是那么好,所以我希望你们中的任何人都能知道答案。如果有人知道,我会很感激。

(function($) {
    $.fn.hasScrollBar = function() {
        return this.get(0).scrollHeight > this.height();
    }

    //Method 1
    if($("#rightsection").hasScrollBar()){
        $('.rightsection1').css({
            "position":"static",
            "margin":"-75px 0 0 150px"
        });
    }

    //Method 2
    if($("#rightsection").hasScrollBar()){
        $('#rightsection').addClass("rightsection1");
        $('#rightsection').removeClass("rightsection2");
    }
})(jQuery);

JSFiddle

解决方案

我将(function($)改为$(document).ready(function(),现在它完美无瑕。

2 个答案:

答案 0 :(得分:0)

<强>解决方案

我将(function($)改为$(document).ready(function(),现在它完美无瑕。

答案 1 :(得分:0)

还有一件事:您应该注意到(function($)更改$(document).ready(function()后它的工作原因仅仅是因为此处的代码根本没有加载。

如果其他库使用(function($) { ... })(jQuery);符号,

$用于$.noConflict mode

无论是否添加此包装器,您始终需要$(document).ready(function() { ... });(或简称为$(function() { ... });)来初始化jQuery函数。

所以在你的情况下,你可能会这样做:

  (function($) {
    $(function() { 
      ...
      // your codes here
      ...
    });
   })(jQuery);