打算重新开始学习jQuery,但是以前还是断断续续的学过一些,也用jQuery写过一些东西,但是总感觉知识不系统,那么现在就开始系统的学一下吧,当然就从事件开始吧。
首先,对于jQuery中事件的触发动作,用原生的javascript的时候则只能选择window.onload方法了,但是用jQuery则可以使用$(document).ready()或者$(function(){}),或者$(window).load()。
那这些有什么区别呢?
首先是关于页面中DOM元素加载的问题,原生的js中的onload方法必须得等到加载页面的DOM树完全建立好之后才开始触发事件,那什么叫DOM树完全建立呢?就是页面中所有的HTML元素节点都建立好,同时呢,所有节点所关联的其它资源也都加载好了,例如,当遇到一个<img src="url" />标签的时候,那么在页面加载的时候可能img标签已经存在于DOM树中了,但是src所指向的资源还没有加载完成,那么这时原生的js的onload的方法是不会触发的,而此时jQuery的ready函数就已经触发了,这是一个区别。
再,jQuery中的load方法与js中原生的onload方法是等价的。而$(function(){})则是$(document).ready()的一种简写形式。
另外,关于事件绑定的次数,这里用js原生的onload方法和jQuery中的ready方法做对比,示例如下:
function a() {
alert('a');
}
function b() {
alert('b');
}
$(document).ready(function() {
a();
});
$(document).ready(function() {
b();
});
页面中弹出窗的顺序是:a,b
function a() {
alert('a');
}
function b() {
alert('b');
}
window.onload = function() {
a();
}
window.onload = function() {
b();
}
页面中弹出窗的顺序是:b
然后通过上面的对比你就会发现一个有趣的特点,那就是$(document).ready()可以绑定多次,而window.onload = function() {}仅能够绑定一次,当再次绑定的时候就会覆盖前面的内容。这两者之间没有好坏之分,只有你需要哪个。
好,这次,就这么多~\(≧▽≦)/~啦啦啦! 祝:学习愉快~