我已经与Codeigniter集成锅炉板。我正在使用codeigniter模板。当我在页面中调用任何jQuery内联函数时,它会在控制台中显示'$ is not defined'。所以我复制了jquery代码并将它放在main.js文件中并且它工作正常。然而,当我在这个依赖于jquery插件的页面中包含任何脚本文件时,它会向我显示相同的jquery未定义错误。请帮帮我!!Codeigniter和样板集成 - jQuery undefined问题
1
A
回答
1
@WillemLabu是正确的,在定义之前不能使用jQuery。 jQuery包含在页面中后,您必须放置使用jQuery的脚本。
Boilerplate将脚本放在页脚中,因为典型的应用程序会从脚注中的外部脚本运行它们的javascript。
的解决方案是
- 将jQuery的在头部;或
- 将jQuery放入脚中,并将内联脚本附加到jQuery包含的对象后面。
你可以做到这一点是这样的:
head.php
<html>
<head>
...
<!-- define a global object to attach your scripts to -->
<script type="text/javascript">APP_READY = { callbacks: []};</script>
</head>
yourView.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>
anotherView.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>
foot.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>
0
JavaScript按顺序运行,这意味着在尝试和使用它之前需要包含jQuery。
确保jQuery包含在尝试使用$()
或jQuery()
的任何其他代码之前(上方)。
相关问题
- 1. CodeIgniter模板问题
- 2. Codeigniter - 集成tank_auth - 问题加载库
- 3. Emberjs和jQuery UI集成问题
- 4. CodeIgniter和Wordpress集成
- 5. Codeigniter和Tomcat集成
- 6. jQuery ajaxForm“h is undefined”问题
- 7. Codeigniter和角度js集成
- 8. Vue.js和Laravel集成问题
- 9. CMS模板创建和jQuery集成
- 10. CodeIgniter模板库问题
- 11. codeigniter模板系统问题
- 12. 集成Wordpress,Codeigniter和.htaccess
- 13. Autofac和WinForms集成问题
- 14. BeepBeep和ErlyDB集成问题
- 15. T4和MSBuild集成问题
- 16. MySQL和NetBeans集成问题
- 17. 集成codeigniter和wordpress授权
- 18. jQuery-Mobile流星样本集成和/或集成指南
- 19. Codeigniter和RewriteRule问题
- 20. 集成PHP喜欢和不像成codeigniter
- 21. Codeigniter + ajax(jQuery)会话问题
- 22. jquery datepicker与codeigniter问题
- 23. jquery,undefined变量的问题,如何?
- 24. Codeigniter PDO集成
- 25. Drupal 7模块jQuery脚本UNDEFINED问题
- 26. jQuery生活问题 - undefined不是函数
- 27. 将Stripe集成到MeanJs样板
- 28. adwhirl集成问题
- 29. CLR集成问题
感谢您的快速回复。我知道它是按顺序运行的。但是如果你看看HTML5 Boiler板的设计,它会加载所有的JavaScript文件和结尾。在这种情况下该怎么办? – Ansuman 2013-02-17 09:00:34
同样的事情仍然适用,HTML5BP只是遵循在DOM和CSS之后加载脚本的最佳做法。重点在于,任何需要jQuery的JavaScript都需要在jQuery加载后才被包含,因为直到那时,'$'和'jQuery'变量才会被定义为'undefined'。 – Labu 2013-02-17 09:20:44
我同意。但我不想用所有外部JavaScript插件调用来重载页眉/页脚,而是希望在必要时在页面中包含外部插件。有什么办法可以做到这一点? – Ansuman 2013-02-17 09:35:12