【问题标题】:What does the jQuery() function in jQuery do?jQuery 中的 jQuery() 函数有什么作用?
【发布时间】:2010-01-22 04:20:41
【问题描述】:

this video 中有一段类似这样的代码:

if (jQuery) {jQuery(function() {
    // ...
})}

我以前从未见过jQuery() 函数(再说一次,我不是一个精明的jQuery 用户),它有什么作用?它是默认随 jQuery 提供的,还是特定于 IxEdit 的?由于缺少通常的$(window).load() sn-p 并且代码有些相似,我猜这是一个快捷方式/别名:

$(window).load(function() {
    // ...
)}

我说的对吗?还有那个jQuery 变量是什么?它持有什么?他为什么要检查它?

【问题讨论】:

    标签: javascript jquery jquery-selectors


    【解决方案1】:

    $() 是 jQuery() 的别名,定义为:

    // Expose jQuery to the global object
    window.jQuery = window.$ = jQuery;
    

    http://code.jquery.com/jquery-1.4.js

    当 $() 或 jQuery() 第一个参数是一个函数时,定义了一种特殊情况:

    // HANDLE: $(function)
    // Shortcut for document ready
    } else if ( jQuery.isFunction( selector ) ) {
        return rootjQuery.ready( selector );
    }
    

    有时 $ 可能会与定义相同函数的其他库(如原型)发生冲突,所以如果您调用

    jQuery.noConflict();
    

    它将删除 $ 别名,将其设置回找到的原始值,本质上:

    window.$ = _$;
    

    【讨论】:

    • 所以第一个sn-p没有检查页面是否已经完全加载?还有,他为什么要用if (jQuery)这个语句?
    • 是的,完全正确.. 有点棘手,window.jquery 设置为本地 var jquery,它是一个函数 (var jQuery = function( selector, context ) { ...)。 if (jQuery) 会检查函数是否定义,你也可以说 if ('jQuery' in window) ... if var not init'd
    • 对不起,我还是有点困惑,你会如何使用jQuery() 函数编写$(document).load(function()$(document).ready(function()
    • @pulse 说 jQuery()$(document).ready() 的别名,而不是 $()
    • jQuery/$ 检查第一个参数的类型,如果是函数则调用ready()
    【解决方案2】:
    jQuery(function()
    

    相同
    $(document).ready(function()
    
    if(jQuery)
    

    是检查jQuery.js文件是否已经加载。

    还有另一种检查方法

    if (typeof jQuery == 'undefined')
    {
        //jQuery has not been loaded  
    }
    

    【讨论】:

    • 谢谢!那么jQuery() 是否也会单独检查文档ready 状态?
    【解决方案3】:

    $ 函数是 jQuery 函数的别名。所以,它们是一样的。

    如果你在noConflict模式下使用jQuery,只有jQuery()函数

    【讨论】:

      【解决方案4】:

      我认为这与使用 $() 相同,但您使用 jQuery() 是为了与其他也使用 $() 的库兼容

      jQuery 可以是存储函数的变量。猜猜如果是检查它是否不是未定义的或类似的东西

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-12
        • 2015-05-25
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 2014-06-29
        相关资源
        最近更新 更多