jQuery事件按执行时间,主要分为两种,第一种是在网页加载完执行,第二种绑定在元素中,由访问者某些行为触发。
$(document).ready(function(){ //事件 }); $("#xx").bind( "click",function(){ //事件 });
$("#xx").unbind("click"); //接触该元素的所有click事件
当然,第二种事件一般情况下是放在第一种内部的
事件的简写
$("#xx").click(function(){ //事件 });
jQuery还提供了一些合成事件,简化代码
hover(enter,leave);//光标移动到某位置,触发enter事件,离开触发leave事件 toggle(fn1,fn2,fn3...);//鼠标连续单击事件 $("#xx").hover(function(){ $(this).hide(); },function{ $(this).show(); }); //此段代码仅为举例,运行效果并不好
事件冒泡的解决方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>example for html5</title> <script src="jquery.js" type="text/javascript"></script> </head> <body> <div id="diveve"> <p id="peve"> ncqnvqj<a href=# id="aeve">aeve</a> </p> </div> <script type="text/javascript"> $(document).ready(function(){ $("#diveve").click(function(){ alert("div"); }); $("#peve").click(function(event){ alert("p"); event.stopPropagation(); }); $("#aeve").click(function(event){ alert("a"); event.stopPropagation(); }); });
模拟操作:trigger()
$("#xx").trigger("click"); //普通模拟 $("#xx").bind("myclick",function(){}); $("#xx").trigger("myclick"); //自定义事件 $("#xx").bind("myclick",function(event,message1,message2){}); $("#xx").trigger("myclick",["我的自定义","事件"]); //传递数据
集合以上知识点,可实现图片的轮播动画:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>example for html5</title> <script src="jquery.js" type="text/javascript"></script> <style type="text/css"> .showmore{ position:absolute; top:100px; width:300px; left:50%; margin-left:-150px; height:100px; overflow:hidden; display:inline-block; border:1px pink solid } </style> </head> <body> <div><a href=# id="button">翻页</a></div> <div class="showmore" > </div> <script type="text/javascript"> $(document).ready(function(){ for(var i=1;i<5;i++) { $divpic=$("<img class='imgr'/>"); $divpic.attr("src",String(i)+".jpg"); $(".showmore").append($divpic); $divpic.css({"position":"absolute","top":"0px","left":i*100-100+"px","width":"100px","height":"100px"}); } $(function()
{ //把轮播函数放在匿名函数中 $("#button").bind("click",function() //给button绑定事件
{
$(".imgr").animate({left:"-=100px"},function() //animate()方法中回调函数的使用 { for(var i=0;i<4;i++) //遍历找出第一张图片,并将其移动到盒子最后端 { if($($(".imgr")[i]).css("left")=="-100px") //这里涉及到DOM和jQuery对象的相互转化 { $($(".imgr")[i]).css("left","300px"); } } }); }); }); }); </script> </body> </html>