所以我在jquery-ui文档中看到了这段代码,我想知道为什么所有的语句都包含在$(function() {...});
jquery文档说$()
增强了它中的对象,但我不明白为什么我们需要它。它是一种惯例还是实际上有意义?
<script>
$(function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
});
</script>
答案 0 :(得分:5)
$(function() {});
与$(document).ready(function() {});
相同;虽然我相信在文件准备好之前会稍微调用它。
它的作用是在文档创建完成后调用函数中的代码。这就是在函数加载时创建的所有DOM树。这允许您在知道那些对象将在那时创建时安全地操作DOM。
以下是一个例子:
<script>
//This code is called straight away, your DOM hierarchy may not
//be complete and the object #draggable may not have been created yet,
//as such draggable() may not work properly.
$( "#draggable" ).draggable();
//This code is called once the DOM tree is complete,
//as such you know all your objects have been created
$(function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
});
</script>
有关更详尽的说明,请参阅jQuery documentation
答案 1 :(得分:3)
这是$(document).ready(function() {})
一旦整个文档被加载就会执行,而不是在解析过程中遇到它时执行。
答案 2 :(得分:2)
它还为其'语句块中的项创建了一个上下文,这和它一样重要 $(document).ready(function(){}),document ready。