首先呢,我们先来看一下,jQuery中的ready事件,它的作用有些类似于window中的onload事件,只不过二者的区别在于,onload事件是要等到网页中的dom节点加载完成,并且css进行样式渲染后,JavaScript中进行了预加载后再执行,而ready事件呢,是在网页中的标签被解析为DOM节点是就执行其中的函数,直白点说,ready执行的比onload早,那么我们在用jQuery的时候,需要做一个ready的执行定义:
//ready的作用,是为具体加载的实现. $(document).ready(function(){ alert('1234'); }); //第二种,少了一个document,创建一个空的jQuery对象. $().ready(function(){ alert('abcd'); }); //第三种,简写版的, $(function (){ alert('23333'); });
那么我们再来看一下onload和ready的第二个区别:
//如果有两个window.onload它只会执行最后一个.如果有多个的话,后边的会将前面的覆盖掉. window.onload=function(){ alert(1); } window.onload = function(){ alert(2); } //而window.ready 则可以设置多个函数,都去作用. $(document).ready(function(){alert(1)}) $(document).ready(function(){alert(3)}) //这里的可以设置多个函数,是指的对于同一个对象设置
那么我们再来看一下jQuery中的事件绑定,这里我们一onclick事件来举例,当我们在js中进行事件绑定的时候,我们分为dom1级事件,dom2级事件,其中还包括对于IE浏览器的兼容性考虑,那么当我们使用jQuery中的事件机制时,就不用去考虑那么多了,jQuery内部已经帮我们做好了兼容性之类的操作,讲真,这真的是很方便了我们了:
//DOM1级事件 var itNode = document.getElementById('id'); itNode.onclick = function(){}; div.onclick = null; DOM1级中解除事件绑定 //DOM2级事件 itNode.addEventListener('click',function(){}); itNode.removeEventListener(); itNode.attachEvent();//IE 6 8 7 兼容性处理 detachEvent(); IE中接触事件绑定 //使用jQuery来操作绑定事件 //$().事件类型(function(){}); //$().事件类型(); $(function(){ $('div').click(function(){//给div绑定了一个onclick事件 $('div').css('color','green'); }); $('div').mouseover(function(){ $(this).css('color','yellow'); }); });
这里的一个主意点就是当绑定事件时,事件名是不用写on的,其实我们还可以用另一种写法$('div').on('click',funciton(){});上面的那种写法就是这种写法的简化,二者的作用还是一样的.那么当我们需要给当前jQuery对象添加多个事件的时候,我们就可以使用bind方法来处理了:
//$().bind(事件类型,事件处理函数(分为有名函数,和匿名函数)) $(function(){ //绑定一个鼠标移动上去处理的事件. $('div').bind('mouseover',function(){ $('div').css('background-color','blue'); }); $('div').bind('mouseout',function(){ $('div').css('background-color','yellow'); }); //一个函数绑定多个事件 这多个时间之间只需要用空格隔开. //这个虽然可以绑定多个事件,但是函数比较单一,不灵活. $('div').bind('mouseover mouseout',function(){ console.log(1234); }); //使用对象的形式来绑定多个事件, $('div').bind({ click: function(){console.log(1);}, mouseover: function(){alert(22);}, mouseout : function(){alert(33);} }); //绑定有名的函数 function fa(){alert("fa");}; function fb(){alert("fb");}; function fc(){alert("fc");}; $('div').bind('click',fb); $('div').bind('click',fc); $('div').unbind();//这样直接调用unbind函数会直接将所有绑定的事件都取消掉. $('div').unbind('click');//这样子就会将div里边所有的click绑定的事件取消掉了 //直接解除指定的函数的绑定,这种方式也只能解除有名函数的绑定,不能解除指定的匿名函数的绑定 $('div').unbind('click',fa); });
当然,在事件处理中,事件对象无疑是我们经常要使用的一个对象,在js中,我们获取对象时还要考虑到兼容性问题,但是在jquery中,我们根本就不用考虑,只需要直接使用函数中传递的event参数就行了:
function(evt){ var evt = evt || window.event; evt.preventDefault();//主流浏览器阻止默认事件 evt.returnValue = false;// IE中阻止对象默认事件 evt.stopPropagation();//主流浏览器中阻止浏览器冒泡 evt.cancelBubble();//IE中阻止浏览器冒泡处理 } $().bind('click',function(evt){ //evt不用做兼容性处理 evt.preventDefault();//阻止浏览器的默认动作. evt.stopPropagation();//阻止浏览器冒泡, });
当然了,我们jQuery中的事件也是由键盘事件,鼠标事件,表单事件,甚至还有自定义的事件等等,和js中的基本一样,总结起来呢,使用jQuery使我们不用去考虑兼容性问题,同时代码量也大大的减少了.
以上所述是小编给大家介绍的jQuery中的事件机制,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]