`
longxia1987
  • 浏览: 35194 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

$ is not defined error

 
阅读更多

"$" 是在jquery里面定义的。

在一次项目中遇见这个错误:“$ is not defined error”.找了半天,网上都说是$没有定义,或者是js没有引入,但是我确实导入了。后来看到一片文章,才发现是js引入的时候顺序错了,给Jquery放在了后面引入,但是我前面已经用到jquery了。

如果页面出现问题,我推荐使用“Firefox” 的 debug来调试。举个例子:

我出现这个问题,也同样引入了jquery,而且位置对,还是提示这个问题。所以我就用 Firefox 的debug来看看js到底有没有加载到,看过之后才发现jquery加载来,但是是从缓存里面读取的,所以我就将缓存清理了,再访问,ok

以下是我看到的文章:

此文出自:http://themaingate.net/dev/jquery/is-not-defined-error

$ is not defined error
Posted Apr 5th, 2009 by David Calhoun in jquery

I first ran into this error when I started using jQuery. It turns out it’s a somewhat common (beginner’s) mistake of trying to run a script without first waiting for jQuery to finish loading, which results in a race condition. The easiest fix for this is to make sure jQuery has its own separate script tag right above your own jQuery-dependent script:

view sourceprint?
1.<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>
2.<script src="myscript.js" type="text/javascript"></script>

This will ensure that myscript.js is loaded only after jQuery is loaded. Of course there are other ways to do this, notably John Resig’s degrading script pattern, but the above solution will at least solve the “$ is not defined” error, which is priority.

However, this may not be enough. Theoretically it’s possible that jQuery doesn’t get loaded (due to some network error) but your script does. In that case we come full circle to our original “$ is not defined” problem. So how do we prevent this?

The first thing I thought of was to make sure $ is defined by wrapping it in an if-then statement. Note that this does NOT fix the problem:

view sourceprint?
1.//note: this method DOES NOT work!
2.if ($) { //check if $ is defined - but this check results in an error!
3. $("#myselector").click (function () {}); //my jQuery code here
4.}

With the above code, we run into the same problem! Arg! But don’t despair. It turns out we need to prevent this sort of error by using the good old try-catch block:

view sourceprint?
1.try {
2. $("#myselector").click (function () {}); //my jQuery code here
3.} catch (e) {
4. console.log (e.message); //this executes if jQuery isn't loaded
5.}

And it works! If $ is undefined (and therefore jQuery isn’t loaded), the error is caught and handled instead of exploding.

Since we don’t live in a perfect world, it would be a good idea to assume that jQuery will not always be loaded and that this “network error” scenario may well occur, so it would be good practice to run a check like this before executing code that depends on jQuery (and likewise for other scripts with other dependencies!).


转载请标明出处:龙企阁 http://blog.csdn.net/longxia1987

分享到:
评论

相关推荐

    VUE使用‘luckysheet‘ is not defined已解决,其他博主方法没有解决请看这里

    如果你遇到了"luckysheet is not defined"的错误,这通常意味着在你的Vue项目中,Luckysheet未正确安装或引入。下面我们将详细探讨这个问题的解决方案以及如何在Vue项目中有效地使用Luckysheet。 首先,让我们了解...

    Python中对错误NameError: name ‘xxx’ is not defined进行总结

    最近在使用python过重遇到这个问题,NameError: name 'xxx' is not defined,在学习python或者在使用python的过程中这个问题大家肯定都遇到过,在这里我就这个问题总结以下几种情况: 错误NameError: name ‘xxx’ ...

    Error in mounted hook: "ReferenceError: AMap is not defined" fo

    ReferenceError: AMap is not defined AMap未定义

    jQuery ReferenceError: $ is not defined 错误的处理办法

    在JavaScript编程中,`ReferenceError: $ is not defined` 是一个常见的错误,它通常发生在尝试使用jQuery库,但浏览器无法找到对应的 `$` 符号,即jQuery的核心函数没有被正确加载或引用。这个错误可能由多种原因...

    完美反编译出微信小程序 彻底解决 __vd_version_info__ is not defined 等出错问题

    彻底解决 __vd_version_info__ is not defined 等出错问题,完美反编译出微信小程序, 已测试。直接下载后按照 qwerty472123/wxappUnpacker 方式使用。原qwerty472123/wxappUnpacker的版本已过时。

    Environment variable ORACLE_UNQNAME not defined错误解决

    ### Environment variable ORACLE_UNQNAME not defined 错误解决 在Oracle数据库管理及维护过程中,可能会遇到“Environment variable ORACLE_UNQNAME not defined”这样的错误提示。本文将围绕这一问题展开详细...

    出现问题a is defined高手帮忙

    &lt;!... 便民设施系统 ; charset=gbk"/&gt; &lt;link rel="stylesheet" type="text/css" href="style.css"&gt;&lt;/link&gt; ... key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ- ... function DragZoomControl(opts_...

    Python 解决execjs._exceptions.ProgramError: ReferenceError: document is not defined报错问题

    在某些情况下,当你尝试使用`execjs`执行包含浏览器环境特定对象(如`document`或`window`)的JavaScript代码时,可能会遇到`execjs._exceptions.ProgramError`,比如`ReferenceError: document is not defined`或`...

    jQuery is not defined 错误原因与解决方法小结

    在进行Web开发时,我们经常会遇到各种各样的错误提示,其中“jQuery is not defined”是一个非常常见的错误。它通常发生在我们尝试在JavaScript代码中使用jQuery库,但浏览器找不到该库的时候。错误的原因和解决方案...

    WebSocket重练机制

    Uncaught ReferenceError: ReconnectingWebSocket is not defined; 说明缺少包资源,需引入reconnecting-websocket.js和reconnecting-websocket.minjs 创建WebSocket对象使用ReconnectingWebSocket 如下: var ws =...

    小程序报错 WAService.js:3 Uncaught Error: module "src/utils/utils.js" is not defined

    编译程序时候老是报module "src/utils/utils.js" is not defined的错,狂问度娘也没结果 后来静下来想才尝试弄正确: 我本来的页面地址是:"src/main/welcome/welcome" 在这个页面的基础上要加载utils.js,所以按照...

    解决vant的Toast组件时提示not defined的问题

    [Vue warn]: Error in v-on handler: “ReferenceError: Toast is not defined” 解决方法: handleClick(){ this.$toast('点击提示') } 补充知识:vue+vant移动端遇到的那些问题 1、项目引用了lib-flexible 跟px...

    DC错误信息注释_design complier error report annotations

    #### UID-4 (error) Current design is not defined. **描述**:当 DC 无法确定当前操作的设计实体时,会生成此错误。 **解决步骤**: 1. **设计列表检查**:通过 `list_designs` 命令列出所有已读入的设计实体。 ...

    ERROR

    当我们遇到"ERROR"这样的标题时,通常意味着在处理字体或与字体相关的操作时遇到了问题。这可能是由于多种原因引起的,如字体文件损坏、操作系统不支持特定字体、软件冲突或者编码问题等。 首先,我们需要了解字体...

    前端项目-lamejs.zip

    **前端项目-lamejs** **概述** `lamejs` 是一个开源的JavaScript库,专为前端开发者设计,用于在浏览器环境中实现MP3编码。这个项目的核心目标是提供一个纯JavaScript解决方案,允许用户在不依赖服务器的情况下,...

    clipboard复制文本或者隐藏域到剪切板,兼容ie.chrome.firefox

    - `clipboard.on(event, callback)`: 添加事件监听器,如`'success'`或`'error'`,回调函数中可以处理复制成功或失败的逻辑。 - `clipboard.destroy()`: 销毁实例,清理监听事件。 3. **浏览器兼容性**: `...

    Python random库使用方法及异常处理方案

    1.random库的使用: random库是使用随机数的Python标准库 从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件...

    解决Layui中layer报错的问题

    然而在开发过程中,有时会遇到一些关于layer的报错问题,比如"Uncaught ReferenceError: layer is not defined",这通常是因为layer没有正确加载或者使用方式不正确导致的。 当出现"Uncaught ReferenceError: layer...

    解决Pycharm下面出现No R interpreter defined的问题

    但是,在使用Pycharm进行开发工作时,可能会遇到一个问题,即工具栏右下角出现“No R interpreter defined”的提示。这个提示通常发生在开发者尝试在Pycharm中配置或使用R语言解释器时。为了解决这个问题,我们需要...

Global site tag (gtag.js) - Google Analytics