加载$ .getScript后无法访问jQuery插件

时间:2011-08-30 00:16:50

标签: jquery plugins dynamic getscript

我试图通过调用“getScript”来动态加载jQuery插件 - 但它似乎没有识别插件的初始化函数。

但是,如果我只是通过创建脚本标记来包含插件,那么插件工作正常。我不能使用静态脚本标记,因为最终产品是通过JavaScript放置在我无法控制的页面上动态加载的。

我在下面用一个名为jScrollPane的插件演示了这个:

第一个头是工作副本,第二个是动态方式。运行动态方式时,会出现$('#content')的错误.jScrollPane()不是函数!

   <head>
        <link type="text/css" href="http://jscrollpane.kelvinluck.com/style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/jquery.mousewheel.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/mwheelIntent.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/jquery.jscrollpane.min.js"></script>

    </head>



    <head>
        <link type="text/css" href="http://jscrollpane.kelvinluck.com/style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/jquery.mousewheel.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/mwheelIntent.js"></script>
        <script type="text/javascript">
            function setScroll() {
                $(function () {
                    $('#content').jScrollPane();
                });
            }
        </script>
<script type="text/javascript">
        $.getScript("http://jscrollpane.kelvinluck.com/script/jquery.jscrollpane.min.js", setScroll());
    </script>
</head>

唯一改变的是jquery.jscrollpane.min.js由.getScript加载,然后实际初始化发生在回调函数中。

1 个答案:

答案 0 :(得分:1)

您希望传递 setScroll函数 getScript,但实际上您正在调用它并传递它返回的任何东西。失去最后的()