2010-03-02 68 views
2

我喜歡知道如何工作或什麼手段(?)當你在選擇器中定義一個函數在jQuery中像這樣。

$(function(){code,code}) 

因爲jQuery的UI可以(或必須..我這個圖書館真新)設置手風琴與此代碼

$(function(){ 
    // Accordion 
    $("#accordion").accordion({ header: "h3" }); 

    //hover states on the static widgets 
    $('#dialog_link, ul#icons li').hover(
     function(){$(this).addClass('ui-state-hover');}, 
     function(){$(this).removeClass('ui-state-hover'); 
    }); 

}); 

來源:http://jqueryui.com/demos/accordion/

我有一個問題設置內的選項卡(也與jquery-ui),但我無法找到爲什麼起作用越野車,我認爲,也許我可以解決這個問題,理解這種行爲。

而且很確定我不會在jquery中選擇不安靜,希望你能幫助我。在此先感謝您,對我的英文不好,感到抱歉。

+0

請牢記$(文件)。就緒(函數{}代碼)};是文檔就緒事件的EVENT處理程序。 – 2011-11-04 12:40:59

回答

2

$(somefunction)$(document).ready(somefunction)的簡寫。所以你在做什麼$(function{})定義了一個匿名函數,一旦文件加載就會運行。

4
$(function(){ /*...*/ }); 

是一樣的:

$(document).ready(function(){ /*...*/ }); 

基本上,它只是持有關閉代碼執行,直到該文件已準備就緒。這只是一個匿名函數。您在調用$.hover()時會看到同樣的情況,它需要兩個匿名函數 - 一個用於確定「輸入」邏輯,另一個用於確定「退出」邏輯。

$(".foo").hover(
    function(){ alert("You entered!"); }, 
    function(){ alert("You exited!!"); } 
); 

有時這些函數會帶來不同的局部變量,您可以使用它們。舉例來說,如果你要通過多種元素使用jQuery的$.each()方法迭代:

$(".foo").each(function(i,o){ 
    alert("Currently on " + i); // Currently on 0, Currently on 1... 
}); 

你可以看到,我們已經有了兩個變量io,提供給我們在這裏。 i是正在迭代的當前元素的索引,而o是元素本身的引用。

+0

對$(function(){})的很好的解釋。 我想知道,這些不在Jquery api中。 – Hoque 2010-03-02 05:41:29

+0

非常感謝你...非常說明和快速回應:) .. – raulricardo21 2010-03-02 05:42:45

0

他們剛剛用你可能沒見過的方式寫出來。懸停方法有兩種可能的功能,一種用於輸入,另一種用於退出。有時寫:

$('#dialog_link, ul#icons li').hover(function(){ 
    //stuff to do on mouseenter 
    $(this).addClass('ui-state-hover'); 
}, function(){ 
    //stuff to do on mouseleave 
    $(this).removeClass('ui-state-hover'); 
}); 

文檔:http://api.jquery.com/hover/#hover1

0

$(function() {})jQuery(function() {})的簡寫,這是$(document).ready(function() {})的簡寫。即它將一個函數綁定到Document的Ready事件,即當文檔完成加載時,該代碼將被執行。這是你應該始終做的。

http://api.jquery.com/jQuery/#jQuery3

相關問題