在JQuery接触中,发现很多的前辈都喜欢$(function() { ..//code }) 和 ($function($){ .. //code}) 来写代码,他们在我们自学的《犀牛书》当中基本上是找不到任何解析的,但是他们的用处确实是非常的好用,也同样能省下不小敲字的时间。
$(function f(){ ..//code})-----相当于$(document).ready(f):是DOM结构绘制完毕后就执行f,不必等到加载完毕
$(function(){ ..//code}) ,找到的信息就相当于$(document).ready( ,function(){..//code}的效果;
第一次使用是用在无控件的情况下点击事件,特别能指向点击的对象,代码如下:
$(function(){
$(document).click( function(e){
var eleTar = $(e.target);
// code;
})
})
上述执行的效率非常高,而且也非常的简洁,如果改成$(document).ready的情况代码就变比较难执行了,如下代码:
$(document).ready("click", function(e){
var eleTarget = $(e.target);
// code;
})
在浏览器下执行 上述代码是不执行的,这是为什么,因为 $(document).ready("click",f)没有加入"document"的对象DOM,所以有些时候必须要反查或指代元素时就用$(function(){ ..//code}) 的形式。
后记,
1、$(window).load必须等到页面内包括图片的所有元素加载完毕后才能执行,
这是与$(document).ready(f)的区别。
2、另外有document.readystate等多种情况对DOM的加载情况进行判定。