一、常用事件
1-1 click()
单击事件
$("p").click(function(){$(this).hide();});
1-2 dblclick()
双击事件
$("p").dblclick(function(){$(this).hide();});
1-3 mouseenter()
当鼠标指针穿过元素时,会发生 mouseenter 事件。
$("#p1").mouseenter(function(){alert('您的鼠标移到了 id="p1" 的元素上!');});
1-4 mouseleave()
当鼠标指针离开元素时,会发生 mouseleave 事件。
$("#p1").mouseleave(function(){alert("再见,您的鼠标离开了该段落。");});
1-5 hover()
hover()方法用于模拟光标悬停事件。
$("#p1").hover(function(){alert("你进入了 p1!");},function(){alert("拜拜! 现在你离开了 p1!");});
二、触发事件
$(selector).trigger('click'); //通过代码触发click事件(模拟点击)<input type="button" value="第一个按钮" id="btn1"/><input type="button" value="第二个按钮" id="btn2"/>$(function () {$("#btn1").click(function () {$(this).css("backgroundColor","red");});//点击第二个按钮调用第一个按钮的点击事件---触发第一个按钮的点击事件$("#btn2").click(function () {//触发事件//$("#btn1").click();//trigger()方法中需要写上触发事件的名字$("#btn1").trigger("click");//触发事件});});
三、事件对象
jQuery事件对象其实就是js事件对象的一个封装,处理了兼容性。
// screenX和screenY 对应屏幕最左上角的值// clientX和clientY 距离可视区左上角的位置(忽视滚动条)// pageX和pageY 距离页面最顶部的左上角的位置(会计算滚动条的距离)// event.keyCode 按下的键盘代码// event.data 存储绑定事件时传递的附加数据// event.stopPropagation() 阻止事件冒泡行为// event.preventDefault() 阻止浏览器默认行为// return false:既能阻止事件冒泡,又能阻止浏览器默认行为。
//阻止事件冒泡<script type="text/javascript">$(document).ready(function(){$("#innerDiv").click(function(event){alert("inner");//阻止事件冒泡方式一://return false;//阻止事件冒泡方式二:event.stopPropagation();});$("#outerDiv").click(function(){alert("outerDiv");});});</script>//阻止默认事件$(function(){//href 就是a标签的默认行为,现在想弹出提示框后阻止默认行为$("a").click(function(event){alert("aaa");//阻止默认行为方式1://return false;//阻止默认行为方式2:event.preventDefault();});});
四、jQuery的data方法
jQuery从1.2.3开始提供了data/removeData方法用来存储/删除数据。
##1.基本使用:$("div").data("key","value");$("div").data("key");$("div").removeData("key");##2.原理:jQuery的data方法并不是将数据直接放到当前的jQuery对象或者dom对象上的,而是通过jQuery.cache对象来缓存的数据。具体上来说:1.先给dom对象新增一个jquery.expando属性,这个属性的值为id(id是从1开始递增的)2.而id又作为jQuery.cache的属性(key)。这样dom对象就与jQuery.cache建立了联系。

五、案例
5-1 替换a标签的默认提示
<script type="text/javascript">$(function(){//替换提示1 提示2 默认的提示文字$(".mytooltip").mouseover(function(event){//获取绑定的数据var title = $(this).data("mytitle");//如果第一次移到标签上面if(!title){//获取title属性值title = $(this).attr("title");//移除默认的提示$(this).removeAttr("title");//缓存数据$(this).data("mytitle",title);}//创建提示的divvar $new = $("<div id='tooltip'>XXX</div>");$new.html(title);//设置位置//$new.offset({"left":0,"top":0});$new.offset({"left":event.pageX+5,"top":event.pageY-20});//追加到body并显示$new.appendTo("body").show();}).mouseout(function(){$("#tooltip").remove();}).mousemove(function(event){$("#tooltip").offset({"left":event.pageX+5,"top":event.pageY-20});});});</script>
5-2 图片提示
$(function(){var x = 10;var y = 20;var href;$("a[class=tooltip]").mouseover(function(e){//1 获取对应标签的自带提示//var title = $("a[class=tooltip]").attr("title");//this代表的是DOM对象(页面中的元素)href = this.href;//删除自带提示this.href = "";//2 创建标签用于自定义提示var $div = $("<div id='tooltip'><img src='"+href+"'></img></div>");//3 将自定义提示的标签,添加到body标签下$("body").append($div);//4 如何调整显示位置(相对鼠标的坐标值:e.pageX和e.pageY)$("#tooltip").css({"top" : e.pageY + y + "px","left" : e.pageX + x + "px"}).show(1000);}).mouseout(function(){this.href = href;$("#tooltip").remove();}).mousemove(function(e){$("#tooltip").css({"top" : e.pageY + y + "px","left" : e.pageX + x + "px"});});});
