2010-01-22 39 views
1

this video存在的代碼片段是這樣的:jQuery中的jQuery()函數有什麼作用?

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

我以前從來沒見過的jQuery()功能(還是那句話,我不是一個聰明的jQuery用戶),它有什麼作用?它是否默認使用jQuery發佈,還是特定於IxEdit?由於平時$(window).load()片段是失蹤,代碼是有點類似我猜這是一個快捷方式/別名:

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

我說得對不對?那麼jQuery變量是什麼?它有什麼作用?他爲什麼要檢查它?

回答

6

$()是用於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.$ = _$; 
+0

所以第一個片段是不檢查,如果該頁面已完全加載?另外,他爲什麼使用「if(jQuery)'語句? –

+0

嗯完全正確..有點棘手,window.jquery設置爲本地var jquery這是一個函數(var jQuery = function(selector,context){...)。如果(jQuery)會檢查函數是否定義,你也可以說if('jQuery'in window)... if var not init'd – jspcal

+0

對不起,但我仍然有點困惑,你會怎麼寫''(文檔).load(function()'和'$(document).ready(function()'使用'jQuery()'函數? –

2

$函數是jQuery函數的別名。所以,他們是一樣的。

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

1

我認爲這是相同的,使用$(),但你使用jQuery(),可以兼容其他庫也使用$( )

jQuery可以是一個存儲函數的變量。猜猜,如果是檢查,如果它不是不確定的或類似的東西

3
jQuery(function() 

是相同

$(document).ready(function() 

if(jQuery) 

是檢查的jquery.js文件是否已被加載與否。

還有另一種方式來檢查這個

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

謝謝!那麼''jQuery()'也會檢查'ready'狀態文件嗎? –

相關問題