---恢复内容开始---

JQuery $未定义

 

jquery是Yii集成的,利用jquery写的代码
$(document).ready(function(){
// 操作列表
$('.operate').mouseover(function() {
$('#operate-'+$(this).attr('key')).show();
}).mouseout(function() {
$('#operate-'+$(this).attr('key')).hide();
});

$('.toggle-btn a,.delete-a').live('click',function() {
var str = $(this).html();
var vid = $('.grid-view').attr('id');
if(!confirm('确定要'+str+'吗?')) return false;
var th=this;
var afterDelete=function(){};
$.fn.yiiGridView.update(vid, {
type:'POST',
url:$(this).attr('href'),
success:function(data) {
$.fn.yiiGridView.update(vid);
afterDelete(th,true,data);
},
error:function(XHR) {
return afterDelete(th,false,XHR);
}
});
return false;
});
第九行说我“$”未定义。。不明白原因

满意回答

(function($){ $(document).ready(function(){ ......... })(jQuery); 防止$在命名空间上有冲突,可以用这样的方式书写。

追问

能给出一个冲突的例子不!谢谢了。。
 

回答

<script src="jquery.js"></script> <script> var $ = function(id){return document.getElementByIdx_x(id)}; //or function $(id){return document.getElementByIdx_x(id)} //or <script src="else js Yii.js"></script> $(document).ready(function(){ ...... }); </script> 上面的就是有命名冲突了,下面的就没有问题: (function($){ $.......//函数里面所有的$都是jQuery })(jQuery); //意思是有1个参数的函数并且执行这个参数为jQuery的函数 (function(){***})();一个函数,并且执行这个函数 function(){***}只是定义,没有执行

刚学习JQuery,按照视频所讲的编写Html文件,完成后用IE9调试显示$符号找不到,$未定义,于是乎我就上网查询出现这种问题的原因,网上无非是说,JS文件引用不对,或者是Html文件的设置编码格式不正确,我仔细的检查了一下Html文件,不没有编码格式设置为UTF-8应该没有问题,因为在FF或IE上测试并没有出现乱码的问题,接下来测试文件引用是不是正确,我把自己编写的JS代码直接放在Html文件里,测试了一下也没有问题啊。这就郁闷了,究竟是啥问题呢?网上说的问题我也没有出现啊,调试了一段时间,看了一下时间不早了,还是睡觉吧,第二天还得上班呢?
第二天,做完手头上的工作,想起昨天遇到的问题,于是我又上网查询了一下,无意间看到一句话。自己编写的JS文件如果想要调用JQuery文件里的函数,JQuery文件引用要放在自己编写JS文件引用位置的前面。是不是自己编写的JS文件引用位置放的不对,这个很有可能。晚上会到寝室看了一下确实是我把JQuery文化引用位置放到了自己编写JS文件的后边。换了一下它们的位置,果然测试正确。由此有以下几点小感触:
1、问题解决不了时不要纠结于一时,放下了有可能你所需要的答案很可能就来了。
2、遇到不懂的问题上网查询是很好的一种学习方法,但没有经过深思熟虑的思考遇到问题就上网去找答案却不是一种好的学习方法。有一句话说的好,尽信书不如无书,网络也如此,尽信网不如无网。没有经过思考就上网查询,很容易被网上的一些说法所误导,让你离自己问题的最佳解决方案渐行渐远,况且网上的很多答案都差不多,那样的话找到自己所需要的答案可就越来越远了。
3、扎实的专业知识很重要。以前在工作中遇到一些不能解决的问题,总喜欢上网查询,可是有时候上网查询未必就能找到你想要的答案,毕竟具体问题具体分析嘛。这时候答案一般是自己想出来的而不是从网上找到的,可见这时候就体现出你所掌握专业知识的重要性了。由此可知,网上提供的答案只是给你提供了一种解决思路,具体怎么解决,还得靠自己的专业知识和深思熟虑才能真正找到。

---恢复内容结束---

JQuery $未定义的更多相关文章

  1. 错误: “WebForm_DoPostBackWithOptions”未定义

    无论是ASP.NET WebForm 还是 ASP.NET MVC项目,在本地程序测试没问题,但是部署在IIS上访问就会出现  错误: “WebForm_DoPostBackWithOptions”未 ...

  2. IE6 IE7 ‘JSON’ 未定义

    今天在调试javascript程序,在FireFox和Chrome没有问题,但是在IE中,一些可以,就会出现如标题的错误:‘JSON’ 未定义: 在IE6,IE7一定有此错误,以及IE能设置兼容性视图 ...

  3. 使用ajax.dll时js脚本错误-XXX未定义

    操作系统:Windows 7 IIS:7.5 ajax.dll现在用的比较少,但是以前的项目有这个,使用的时候很容易出现这个错误,因为总是会遗漏配置. 使用ajax.dll时,js脚本错误,无法调用后 ...

  4. .Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。

    方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-- ...

  5. .NET4.0 __doPostBack未定义

    方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-- ...

  6. “__doPostBack”未定义

    项目中发现IE10等高级浏览器报错 ASP.NET无法检测IE10,导致_doPostBack未定义JavaScript错误 为此微软工程师解释如果发布asp2.0 asp4.0发布时,这些浏览器还未 ...

  7. jquery.uploadify 异常 “__flash__removeCallback”未定义

    使用场景结合artdialog弹出框使用时发生“__flash__removeCallback”未定义,原因在于artdialog基于iframe加载的uloadify,在关闭artdialog的时候 ...

  8. IE11出现“__doPostBack未定义”的解决办法。

    方法一:浏览器设置成兼容模式,这个是超级掩耳盗铃方法,你就没想过其他人也会出这个问题. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/565 ...

  9. int左移32位的行为未定义/Coverity

    int左移32位的行为未定义 Coverity 代码静态安全检测 Is Shifting more than 32 bits of a uint64_t integer on an x86 machi ...

  10. ILog JRules 标识符 X 未定义

    在定义枚举值时,属性“转译”(“translation”),定义字符串时需要双引号,相当于value值. 其属性值如果只有字符串,而没有双引号,在编译或者执行时就会报“标识符X未定义”的错误信息.

随机推荐

  1. P2455 [SDOI2006]线性方程组(real gauss)

    P2455 [SDOI2006]线性方程组 (upd 2018.11.08: 这才是真正的高斯消元模板) 找到所消未知数(设为x)系数最大的式子,把它提上来 把这个式子的 x 系数约成1 把这个式子用 ...

  2. 20145304 Exp9 Web安全基础实践

    20145304 Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入是将查询语句当做查询内容输入到查询的框中,以此来使服务器执行攻击者想让它执行的语句,而不是 ...

  3. max3232

    max3232采用专有低压差发送器输出级,利用双电荷泵在3.0V至5.5V电源供电时能够实现真正的RS-232性能,器件仅需四个0.1uF的外部小尺寸电荷泵电容.max3232确保在120kbps数据 ...

  4. JavaScript:正则表达式 分组2

    继续上一篇的写,这篇复杂点. 分组+范围 var reg=/([abcd]bc)/g; var str="abcd bbcd cbcd dbcd"; console.log(str ...

  5. win7系统远程桌面无法正常连接

    我的电脑--属性--远程设置:初步设置: 此外还需要确认服务是否开启

  6. 【第十一章】 springboot + mongodb(简单查询)

    1.mongodb在mac上的安装 下载mongodb,https://www.mongodb.org/ 解压缩到一个指定文件夹,如:/Users/enniu1/Desktop/zjg/mongodb ...

  7. C#学习笔记(十):函数和参数

    函数 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste ...

  8. Ubuntu 上 执行命令 java -version 显示 没有那个文件或目录

    解决方法 执行 which java 发现默认java目录:/usr/bin/java . 查看 JAVA_HOME 路径:$JAVA_HOME,得到 /usr/local/java/jdk1.7.0 ...

  9. 如何新建一个datatable,并往表里赋值

    顺序是新建对象-->新建列-->新建行,示例代码如下: DataTable dt=new DataTable(); //新建对象 dt.Columns.Add("姓名" ...

  10. Linux 普通用户拿到root权限及使用szrz命令上传下载文件

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...