jQuery中的事件&两种页面加载完成之后的区别
事件的冒泡:父子元素同时监听一个事件,当子元素的事件触发时,父元素也会响应这个事件
阻止事件冒泡:在子元素事件函数体中 return false即可
事件对象
- js在封装有触发事件的信息时会产生一个事件对象
- 如何获取这个对象
在给元素绑定事件的时候,在function(event){}中传入一个event参数,这个event就是js产生的事件对象。
event事件对象中包含了很多信息,可以根据这些信息进行一些操作。例如使用event.type就可以得到事件是什么类型的事件。
$(function(){});和window.onload=function(){}的区别
-
触发顺序
jQuery的页面加载完成之后 先执行,原生的页面加载完成之后 后执行 -
他们的触发时机
- jQuery页面加载完成之后是在 浏览器解析完页面内容,把所有标签的dom对象创建出来之后就会立即执行
- 而原生js的页面加载完成之后还需要等待 标签需要显示的内容 (图片,链接等)加载完成才能显示
- 他们的执行次数
- 如果有多个原生页面加载完成之后,原生js只会执行最后一个(因为window.onload=function(){}它是赋值操作,会覆盖前面的)
- jQuery的页面加载完成后 如果有多个,会依次执行
另外几个事件
- 事件的触发与绑定(以click()点击事件为例)
- click(function(){})参数中传入了function,这样称之为绑定
- click();之间调用这个函数,不传参数,称为触发这个事件
-
click()---------点击事件
-
mouseover()-----鼠标移入
用法:选择器.mouseout()【也可以传一个函数作为参数作为鼠标移入后的响应事件】 -
mouseout()------鼠标移除
用法:选择器.mouseout()【也可以传一个函数作为参数作为鼠标移出后的响应事件】 -
bind()----------可以给元素一次性绑定一个或多个事件(多个事件之间空格隔开)
用法:选择器.bind("事件 事件",function(){事件触发的函数}) -
one()-----------与bind()用法一样,但是每个事件只会触发一次
-
unbind()--------与unbind()相反,解除事件的绑定
-
live()----------可以绑定选择器选择的所有元素,即使这个元素是后面动态创建出来的也可以绑定。(例如,通过appendTo()添加的标签也能绑定成功)