window.onload事件与 $(document).ready()事件处理程序的区别
1、触发操作的时间不同。window.onload事件在文档完全下载到浏览器时,才会触发。$(document).ready()事件处理程序在DOM完全就绪并可以使用时调用,所有关联的文件不一定都下载完毕。
2、执行多个脚本。window.onload事件只能执行一个脚本,最后指定的函数会代替之前所指定的函数。 $(document).ready()事件处理程序可以执行多个脚本,每次被调用,都会向内部的行为队列中添加一个新函数,所有函数在页面加载完成后都会被执行,并按照注册它们的顺序依次执行。
多个库引起的名称冲突
解决方法:1、调用jQuery.noConflict()方法
1 <script src=“prototype.js”></script> 2 <script src="jQuery.js"></script> 3 <script> 4 jQuery.noConflict(); 5 </script> 6 <script src="myscript.js"></script>
2、向.ready()方法传递的回调函数接收$为参数。
jQuery(document).ready(function($){ //在这里,可以正常使用 }); 或者简写语法: jQuery(function($){ //正常使用 });
3.3.1事件的旅程
事件捕获:允许多个元素响应单击事件的一种策略,事件首先会交给最外层的元素,接着再交给更具体的元素。
事件冒泡:与事件捕获相反的,即当事件发生时,会首先发送给最具体的元素,在这个元素获得响应机会之后,事件会向上冒泡到更一般的元素。
DOM标准规定同时使用这两种策略:首先,事件要从一般元素到具体元素逐层捕获,然后,事件再通过冒泡返回DOM树的顶层。
1、阻止事件冒泡。通过事件对象。事件对象会在元素获得处理事件的机会时传递给被调用的事件处理程序,包含与事件有关的信息,也提供影响事件在DOM中传递进程的一些方法。如事件目标:event.target(),停止事件传播:stopPropagation()。
2、阻止默认操作。.preventDefault()方法。
3、同时停止事件传播和默认操作。在事件处理程序中返回false。