JS最常见报错之 $ is not defined

kobe_legend 2016-02-16 09:37:28
很诡异,容我慢慢描述。

做个小demo,前端用的是jQuery + EasyUI + artDialog这几个框架,后台Java。我最开始做的页面是这样引用js文件的:


跑起来没有任何问题,然后是诡异的第二个页面,引入顺序(和第一个页面是一样的引入顺序,只是修改了相对路径,用ctrl是可以定位过去的)如下图:


第一个页面没问题就不贴代码了,上第二个页面的吧~~

/*输入检查*/
function user_input() {
user = $('#user').val();
password = $('#password').val();
if (trim(user) == "" || trim(password) == "") {
alert("用户名或密码不能为空!");
return false;
} else {
return true;
}
}


/*注册*/
function regist(){
var registWindow = $('#registWindow').window({
width : 600,
height : 400,
title: '管理员注册',
modal : true
});
}

各位将就看看吧,我没找到原因,jQuery引入了,然后js文件的引入顺序也应该没问题吧,大神们路过瞅瞅
...全文
59896 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_3193572562 2018-10-29
  • 打赏
  • 举报
回复
在src开头加上${pageContext.request.contextPath}/
试试看
qq_36777044 2018-02-13
  • 打赏
  • 举报
回复
我的jquery文件浏览器显示成功加载了,但是仍然是$ not defined 这个问题是怎么回事?
ibk2012 2017-11-24
  • 打赏
  • 举报
回复
顺便说一下解决过程吧。其实很简单,可以检查路径问题,引入顺序问题,通过浏览器的调试工具来看资源是否加载和加载的顺序。就可以排除路径问题和引入顺序问题。如果都没问题,还是有错误的话,再检查文件编码问题,我试过了,不同编码(UTF-8和GB2312)是不影响的。如果还有问题,再自己查资料排查吧。
ibk2012 2017-11-24
  • 打赏
  • 举报
回复 1
还有一种情况,以上都没有说到,还是自己找到了问题的原因。是这样的;我用的是asp.net,在母版页_Layout.cshtml里面引用了jQuery.js,是MVC模板代码,什么路径啊编码啊都不可能有问题。(看这些没用的答案害我浪费了好多时间去尝试这方面的解决方法。所以做事得立场坚定)然后我自己编写代码的页面引用了_Layout.cshtml,自己编写的js代码通过自己的页面引入的。结果就死活报这个“$ is not defined”的错误。这个错误我相信是非常容易犯的。原因是MVC模板代码的一点逻辑bug吧。 @RenderBody()这是母版页加载子页面的代码, @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) 这是母版页引入jQuery的代码。这样导致子页面加载完了,才加载引入jQuery的代码。而子页面的js代码如果有引用jQuery,这个时候就会报错。(PS:这是我个人通过实验得出的结论,就算不准确,也比瞎说的好。) 解决方法可以是在加载子页面的时候引入jQuery,建议把引入jQuery的部分代码移到head里面。这样就不会报无缘无故的错误了。
hch126163 2016-02-18
  • 打赏
  • 举报
回复
一、这种情况 通常是 文件路径问题 路径有4种写法: 1、绝对路径,肯定不会出错的写法如: http://libs.baidu.com/jquery/1.9.1/jquery.min.js 2、相对于网站根目录路径,也是用的最多的写法,所有页面都能正确导入 如:/jquery/1.9.1/jquery.min.js 3、相对路径: ../1.9.1/jquery.min.js 其中..表示返回上级目录,上面写法,只能是和1.9.1同级【包括1.9.1】的文件夹下的页面才能正确导入 4、直接文件名或者文件夹开头: jquery.min.js // 只能和jquery.min.js 文件同级的页面才能正确导入 1.9.1/jquery.min.js // 只能和1.9.1文件夹同级的页面才能正确导入 二、也可能是 文件编码不一致,导致浏览器不认识 统一html 和js 文件编码就可以
kobe_legend 2016-02-18
  • 打赏
  • 举报
回复
后来改过了路径就对了,但是不明白之前为何不对,明明是可以定位过去的
木头海上漂 2016-02-17
  • 打赏
  • 举报
回复
路径有点问题。。你可以在浏览器中查看它的路径
杨小事er 2016-02-17
  • 打赏
  • 举报
回复
看看你文件夹放的位置,路径错了
kobe_legend 2016-02-17
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
jquery引入的问题
这个怎么讲,jQuery引入有啥问题?而且我前面那个页面引入是完全正常的啊
似梦飞花 2016-02-17
  • 打赏
  • 举报
回复
jquery引入的问题
kobe_legend 2016-02-17
  • 打赏
  • 举报
回复
引用 4 楼 qq_25936689 的回复:
看看你文件夹放的位置,路径错了
这个应该不会,我是直接copy的路径过来,Ctrl+鼠标左键是可以打开文件的啊
slwsss 2016-02-16
  • 打赏
  • 举报
回复
全换成绝对路径试下

87,920

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧