javascript - 这个javascript符号是什么?

标签 javascript jquery

我找到了 here

;(function ($, window, document, undefined) {
//code
}(jQuery, this, this.document));

我第一次看到这样的东西。它是什么以及如何解释?我不明白为什么它必须通过 this 和 this.document,以及 'undefined' 是什么意思。

我问的原因是因为我将它包含在我的页面中并且

  if($('ul.mtree').length)

返回 false,尽管当我在控制台中键入它时它返回 true。

最佳答案

第一个分号 ; 将以下代码与可能忘记了分号的任何其他前面的代码区分开来。这很重要,因为如果找不到分号,括号将尝试将前面的语句作为函数运行。

对于其余代码,我们只是声明一个“内联”函数,该函数将立即执行,其中参数 $、window、document 然后被实例化为 jQuery, this, this.document (分别)来自全局范围。这主要是为了让您可以在新的 jQuery 插件中使用“$”,而不必担心 $ 是否已在其他地方被覆盖。您可以确定 $jQuery 相同。

阅读更多关于“保护 $ 别名和添加范围”的信息 here

来自 OP 的更新:

对于返回 false 的 if 语句,请确保在调用 if 语句时已加载 html。一种快速的方法是将其包装在 $(document).ready 方法中,如下所示:

$(document).ready(function () {
    if($('ul.mtree').length) {
         alert("got 'em!");
    }
});

关于javascript - 这个javascript符号是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679016/

相关文章:

javascript - 在 Javascript 中使值复数(大于,小于)

javascript - 如何使用 ng-repeat 更改 AngularJS 中特定 <tr> 的背景颜色

javascript - 如何使 JSON.stringify 在没有 "post-processing"的情况下以 ascii 安全转义形式 (\uXXXX) 编码非 ascii 字符?

Javascript - 将文本添加到可以添加但不能删除的表单字段

javascript - jQuery .click() 方法未按预期运行

javascript - Multer-s3 在手机上上传空文件

javascript - 如何在 ng-repeat 中绑定(bind)来自动态命名输入的数据

javascript - jQuery Datepick (Keith Wood) 使用 CSS 类突出显示 defaultDate

jquery - 悬停时在水平轴上倒置文本 - jquery 或 css

javascript - 链接 anchor 文本以打开特定选项卡