一,jQuery页面加载后执行的事件(3种方式)
说明:当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行。
1 $(function () { });
2 $(document).ready(function () { });
3 window.onload = function () { }
注意点:
1,有一个参数--对jQuery函数的引用--会传递到这个ready事件处理函数中。可以给这个参数任意起一个名字,并因此可以不再担心命名冲突而放心地使用$别名。
2,请确保在 <body> 元素的onload事件中没有注册函数,否则不会触发$(document).ready()事件。
3,可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。
二,匿名方法预定义插件
(function($){
}) (jQuery)
相当于定义了一个参数为$的匿名函数,并且将jQuery作为参数来调用这个匿名函数,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery。
其实就等于
var fn = function($){
};
fn(jQuery);
其实可以这么理解,不过要注意的是fn是不存在的,那个函数直接定义,然后就运行了。就“压缩”成下面的样子了
(function($){...})(jQuery)
简单理解:(function($){...})(jQuery)用来定义一些需要预先定义好的函数
$(function(){ })则是用来在DOM加载完成之后运行\执行那些预行定义好的函数。
三,区别
1,$(function(){})在DOM加载完毕后执行了ready()方法,(function($){}) (jQuery)是执行()(para)匿名方法,只不过是传递了jQuery对象。
2,$(function(){})用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){})(jQuery)用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码要小心使用。