1

我已经将样板与 Codeigniter 集成在一起。我正在使用 codeigniter 模板。当我在页面中调用任何 jQuery 内联函数时,它会在控制台中显示“$ 未定义”。所以我复制了 jquery 代码并将其放入 main.js 文件中,它就可以工作了。但是,当我在此页面中包含依赖于 jquery 插件的任何脚本文件时,它会向我显示相同的 jquery 未定义错误。请帮我!!

4

2 回答 2

1

@WillemLabu是正确的,在定义之前不能使用 jQuery。您必须在页面中包含 jQuery 之后放置使用 jQuery 的脚本。

Boilerplate 将脚本放在页脚中,因为典型的应用程序会从页脚中的外部脚本运行它们的 javascript。

解决方案是

  1. 把jQuery放在头上;或者
  2. 将 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 回答