【发布时间】:2011-08-30 00:16:49
【问题描述】:
我正在尝试通过调用“getScript”来动态加载 jQuery 插件 - 但它似乎无法识别插件的初始化函数。
但是,如果我只是通过创建脚本标签来包含该插件,则该插件可以正常工作。我不能使用静态脚本标记,因为最终产品是通过 JavaScript 动态加载的,该 JavaScript 放置在我无法控制的页面上。
我在下面使用名为 jScrollPane 的插件演示了这一点:
第一个head是工作副本,第二个是动态方式。动态方式运行时,出现$('#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 加载,然后实际初始化发生在回调函数中。
【问题讨论】:
标签: jquery plugins dynamic getscript