我已经将样板与 Codeigniter 集成在一起。我正在使用 codeigniter 模板。当我在页面中调用任何 jQuery 内联函数时,它会在控制台中显示“$ 未定义”。所以我复制了 jquery 代码并将其放入 main.js 文件中,它就可以工作了。但是,当我在此页面中包含依赖于 jquery 插件的任何脚本文件时,它会向我显示相同的 jquery 未定义错误。请帮我!!
问问题
189 次
2 回答
1
@WillemLabu是正确的,在定义之前不能使用 jQuery。您必须在页面中包含 jQuery 之后放置使用 jQuery 的脚本。
Boilerplate 将脚本放在页脚中,因为典型的应用程序会从页脚中的外部脚本运行它们的 javascript。
解决方案是
- 把jQuery放在头上;或者
- 将 jQuery 放在脚下,并将内联脚本附加到在 jQuery 包含之后运行的对象。
你可以这样做:
头文件
<html>
<head>
...
<!-- define a global object to attach your scripts to -->
<script type="text/javascript">APP_READY = { callbacks: []};</script>
</head>
你的视图.php
<!-- add your inline scripts inside the APP_READY namespace -->
<script type="text/javascript">
// MODULE
APP_READY.callbacks.push(function() {
alert('simple example of APP_READY Callback');
});
</script>
另一个视图.php
<script type="text/javascript">
// MODULE
APP_READY.callbacks.push(function() {
var exampleModule = [];
exampleModule.init = function() {
alert('modular example of APP_READY Callback');
};
exampleModule.init();
});
</script>
脚.php
<!-- include jQuery -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<!-- execute your Object -->
<script type="text/javascript">
(function($) {
'use strict';
// Initialise the callbacks
//
for (var i =0; i<APP_READY.callbacks.length; i++ ) {
var callback = APP_READY.callbacks[i];
if(callback && typeof callback == 'function') {
callback();
}
}
})(jQuery);
</script>
于 2014-02-13T23:35:57.980 回答
0
JavaScript 是按顺序运行的,这意味着您需要在尝试使用 jQuery 之前将其包含在内。
确保在任何其他尝试使用$()
或jQuery()
.
于 2013-02-17T08:27:40.020 回答