JQuery $未定义

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

JQuery $未定义

(2012-07-23 15:14:45)

转载▼

标签:

杂谈

分类: javaEE

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、扎实的专业知识很重要。以前在工作中遇到一些不能解决的问题,总喜欢上网查询,可是有时候上网查询未必就能找到你想要的答案,毕竟具体问题具体分析嘛。这时候答案一般是自己想出来的而不是从网上找到的,可见这时候就体现出你所掌握专业知识的重要性了。由此可知,网上提供的答案只是给你提供了一种解决思路,具体怎么解决,还得靠自己的专业知识和深思熟虑才能真正找到。

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

时间: 2024-11-08 07:58:35

JQuery $未定义的相关文章

PHP如何区分未定义,null

今天遇到群里一个人提的问题,isset无法区分未定义和null怎么办? 下面是代码. <?php$b = null;$c = '';$arr = get_defined_vars(); if(!isset($a) && !array_key_exists('a', $arr)){    echo '变量未定义';}else if($a === null){    echo '变量已定义,但变量为空';}else{    echo '变量已定义且变量不为空';} echo '<b

SCRIPT5007:无法获取属性“show”的值,对象为null或未定义

1.错误描述 SCRIPT5007:无法获取属性"show"的值,对象为null或未定义            dojo.js,行15.字符11808 2.错误原因    require(["dijit/registry"],function(registry){        registry.byId("id").show();    }); 3.解决办法 SCRIPT5007:无法获取属性"show"的值,对象为null

IE开发人员工具显示异常,IE加载百度地图,BMap“未定义”

现象:IE开发人员工具,打开界面("网络选项卡")一片空白. 解决:点击Internet选项-高级-重置,重启电脑(有提示). 现象:IE加载百度地图,BMap"未定义", 解决:上面的重置后,重启浏览器,意外地百度地图可以用了.( 现象: http://api.map.baidu.com/api?  响应出现问题,没有继续加载http://api.map.baidu.com/getscript?v=2.0&ak= ) 这里还可以参考这篇博文(这个原来也设置

.NET4.0 __doPostBack未定义

方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-->库程序包管理器-->程序包管理器控制台(如果没有“库程序包管理器”的菜单,就先点那个“扩展管理器”,安装一个叫“NuGet程序包管理器”,然后就会有了.),点击后下面会出现一个连接PowerShell的控制台,等控制台加载完毕后输入 install-package App_BrowsersUpd

__doPostBack未定义

工作时遇到这一问题,在网上找了一下解决方法,分享给大家. 方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-->库程序包管理器-->程序包管理器控制台(如果没有"库程序包管理器"的菜单,就先点那个"扩展管理器",安装一个叫"NuGet程序包管理器",然后就会有了.),点击后下面会出现一个连

jQuery中的关于$的未定义

1.在初学jQuery时,刚开始做好的一段简单的jQuery代码运行完成后,为了简便合理,把它放在了重新建的一个文件夹下,在运行时总是出现$未定义. 这是一个关键点:在jQuery中,一定要确保引用文件的位置在你所jQuery代码文件的位置之后,当我换回之后.就不再报错了. 问题感悟:1.在遇到问题时,要想一想自己是哪里记错了,才能有所感悟.多查多看多想...

IE10、IE11出现“__doPostBack未定义”的解决办法。

方法一:浏览器设置成兼容模式,这个是超级掩耳盗铃方法,你就没想过其他人也会出这个问题. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-->库程序包管理器-->程序包管理器控制台(如果没有“库程序包管理器”的菜单,就先点那个“扩展管理器”,安装一个叫“NuGet程序包管理器”,然后就会有了.),点击后下面会出现一个连接PowerShell的控制台,等控制台加载完毕后输入 ins

angularjs 遇见$scope,xxx=function()报错为该函数未定义

本包子今天遇见一个问题,就是明明写了$scope,xx=function()但是报错了,报错显示是该函数未定义,我就很着急的先将函数写成一个全局函数,就没问题,等下午有空的时候寻思了一下,为什么全局就行呢,后来尝试将之前写的$scope.xxx=function()放在最上面,发现就没有报错了,才明白过来,这个angularjs中的函数原来是有执行的顺序的,写调用方法的时候,最好写在上面,so de si nei! 自己基本功还是很不扎实,得多多锻炼啊

0x800a1391-Microsoft Jscript &quot;JSON未定义&quot;

本人在进行调试代码是遇到以下问题: 在运行到var result = JSON.parse(data);这句时,报错:JSON未定义.如下图: 可是前几天运行还好好的,怎么突然就报错了呢? 经过查找发现,原来是ie浏览器的浏览模式出的鬼. 报错时的ie浏览模式是这样的:. 解决方法:把”ie9兼容性视图模式“改为“ie9模式”就可以了.

JQuery的$.each(list,function(i,a){} 中 i和a 未定义,a取不到值

$.each(list,function(i,a){ var status = ""; if(a.status==0) status="未审核"; else if(a.status==1) status="审核通过"; else if(a.status==2) status="审核未通过";}就提示i 和 a 未定义.请问哪里有错?? each()是遍历方法, 简单的说each就是个循环语句, 处理数组var arr = [