2010-03-02 51 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

相关问题