javascript – Django和jQuery的难度(为什么管理员应用程序中的$undefined?)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Django和jQuery的难度(为什么管理员应用程序中的$undefined?),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2924字,纯文字阅读大概需要5分钟。
内容图文
自从我使用jQuery以来已经有一段时间了;我想我犯了一个愚蠢的错误.
这是一个Django小部件:
class FooWidget(Widget):
# ...
class Media:
js = ('js/foowidget.js',)
这是.js文件:
alert("bar");
$(document).ready(function() {
alert("omfg");
$('.foo-widget').click(function() {
alert("hi");
return false;
});
});
alert("foo");
唯一的警报()是第一个.我有一个愚蠢的语法错误或什么?
此外,如果页面上的其他一些包含的脚本重新定义$(document).ready,我是否需要担心它?我猜测后续定义会覆盖我的定义,因此后续定义更安全,例如:
$(document).ready(function() {
document.ready()
// real stuff
});
在foowidget.js时,jQuery已经包含在页面中.
更新:根据@ lazerscience的链接,我尝试了以下代码,但它仍然像以前一样失败:
alert("bar");
$(function() {
alert("omfg");
$(".set-widget").click(function() {
alert("hi");
return false;
});
});
alert("foo");
更新2:奇怪的是,当我这样做时:
alert($);
我得到“未定义”.这表明jQuery实际上并未初始化.这让我很困惑,因为< head>包括:
<script type="text/javascript" src="/media/js/jquery.min.js"></script>
<script type="text/javascript" src="/media/js/jquery.init.js"></script>
<script type="text/javascript" src="/media/js/actions.min.js"></script>
<script type="text/javascript" src="/static/js/foowidget.js"></script>
在jQuery脚本之后不放我的脚本确保定义$?
更新3:来自jquery.min.js:
/*!
* jQuery JavaScript Library v1.4.2
* http://jquery.com/
*
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Sat Feb 13 22:33:48 2010 -0500
*/
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? /* ... */
看起来对我不对.
这是来自Firebug控制台:
Error: $is not a function
[Break On This Error] $(function() {
foowidget.js (line 5)
>>> $
anonymous()
>>> jQuery
undefined
>>> $('a')
null
>>> $(document)
null
更新4:$在我的Django网站的所有页面上定义,除了管理员应用程序.奇…
更新5:这很有趣.
jQuery.init.js:
// Puts the included jQuery into our own namespace
var django = {
"jQuery": jQuery.noConflict(true)
};
从控制台:
>>> $
anonymous()
>>> django
Object {}
>>> django.jQuery
function()
>>> django.jQuery('a')
[a /admin/p..._change/, a /admin/logout/, a ../../, a ../, a.addlink add/]
解决方法:
您可以使用$(document).ready()as often as you want to on one page.它不会在您调用它时重新定义任何内容,但ready()的调用会添加在“文档准备就绪”时调用的函数.
调试你的代码,例如.使用Firebug,它会向您显示有关错误发生位置的详细信息,如果有的话!
内容总结
以上是互联网集市为您收集整理的javascript – Django和jQuery的难度(为什么管理员应用程序中的$undefined?)全部内容,希望文章能够帮你解决javascript – Django和jQuery的难度(为什么管理员应用程序中的$undefined?)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。