jQuery - 加载脚本后运行代码

时间:2011-08-05 14:19:16

标签: jquery load

在我的标题中,我加载了脚本(我将这些脚本保存在我的服务器上,这里只为您添加原始链接):

<script src="http://jscrollpane.kelvinluck.com/script/jquery.mousewheel.js"></script>
<script src="http://jscrollpane.kelvinluck.com/script/mwheelIntent.js"></script>
<script src="http://jscrollpane.kelvinluck.com/script/jquery.jscrollpane.min.js">

然后在我的页脚上我正在执行一些代码:

$(document).ready(function() {
            $(function(){
                $('.scroll-pane').load().jScrollPane();
            });
            numOfPics = $('#gallery-wraper img').size();
            widthOfAll = 0;
            $('#gallery-wraper img').each(function() {
                imgWidth = $(this).width() + 20;
                widthOfAll += imgWidth;
            }); // end of each
            $("#gallery-container").load().css("width",widthOfAll);

            galleryPosition = $(window).height() / 2 - 250;
            $("#gallery").css("margin-top", galleryPosition);
});// end of document.ready()

我想要它水平显示我的图像并将其放入jScrollPane(http://jscrollpane.kelvinluck.com/) 但它只在刷新后水平显示我的图像(甚至在chrome中刷新几页后)。看起来它试图在生成页面内容(它是一个wordpress主题)之前或者在加载滚动库之前执行我的代码。我的逻辑在这里出了什么问题?我正在使用document.ready(),为什么它会这样做?

2 个答案:

答案 0 :(得分:2)

在页面加载后尝试调用

$(document).ready(function() {
  $(function(){
      $('.scroll-pane').load().jScrollPane();
  });
  function updateCSS() {
    numOfPics = $('#gallery-wraper img').size();
    widthOfAll = 0;
    $('#gallery-wraper img').each(function() {
        imgWidth = $(this).width() + 20;
        widthOfAll += imgWidth;
    }); // end of each
    $("#gallery-container").load().css("width",widthOfAll);

    galleryPosition = $(window).height() / 2 - 250;
    $("#gallery").css("margin-top", galleryPosition);
  }

  setTimeout('updateCSS()',100);
});// end of document.ready()

答案 1 :(得分:2)

我不确定这是否是您的问题,但请尝试$(window).load事件而不是$(document).ready。 $(window).load在所有库,图像,框架等加载后执行,而不是在加载HTML代码之后执行(因为您的库和图像可能仍在加载)。

http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/