JQuery学习笔记- jQuery 事件与应用
1. 页面加载时触发ready()事件
ready()事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行。此外,下列写法是相等的:
$(document).ready(function(){})等价于$(function(){});
2. 使用bind()方法绑定元素的事件
bind()方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名、绑定的事件名称、事件中执行的函数内容就可以,它的绑定格式如下:
$(selector).bind(event,[data] function)
参数event为事件名称,多个事件名称用空格隔开,function为事件执行的函数。
<inputid="btntest"type="button"value="点击或移出就不可用了"/><scripttype="text/javascript">$(function(){$("#btntest").bind("clickmouseout",function(){$(this).attr("disabled","true");})});</script>
3. 使用hover()方法切换事件
hover()方法的功能是当鼠标移到所选元素上时,执行方法中的第一个函数,鼠标移出时,执行方法中的第二个函数,实现事件的切实效果,调用格式如下:
$(selector).hover(over,out);
over参数为移到所选元素上触发的函数,out参数为移出元素时触发的函数。
<div>别走!你就是土豪</div><scripttype="text/javascript">$(function(){$("div").hover(function(){$(this).addClass("orange");},function(){$(this).removeClass("orange")})});</script>
4. 使用toggle()方法绑定多个函数
toggle()方法可以在元素的click事件中绑定两个或两个以上的函数,同时,它还可以实现元素的隐藏与显示的切换,绑定多个函数的调用格式如下:
$(selector).toggle(fun1(),fun2(),funN(),...)
其中,fun1,fun2就是多个函数的名称
<inputid="btntest"type="button"value="点一下我"/><div>我是动态显示的</div><scripttype="text/javascript">$(document).ready(function(){$("#btntest").toggle(function(){$("div").hide()},function(){$("div").show()});});</script>
5. 使用unbind()方法移除元素绑定的事件
unbind()方法可以移除元素已绑定的事件,它的调用格式如下:
$(selector).unbind(event,fun)
其中参数event表示需要移除的事件名称,多个事件名用空格隔开,fun参数为事件执行时调用的函数名称。
如果没有规定参数,unbind() 方法会删除指定元素的所有事件处理程序。
<inputid="btntest"type="button"value="移除事件"/><div>土豪,咱们交个朋友吧</div><scripttype="text/javascript">$(function(){$("div").bind("click",function(){$(this).removeClass("backcolor").addClass("color");}).bind("dblclick",function(){$(this).removeClass("color").addClass("backcolor");})$("#btntest").bind("click",function(){$("div").unbind("dblclick");$(this).attr("disabled","true");});});</script>
6. 使用one()方法绑定元素的一次性事件
one()方法可以绑定元素任何有效的事件,但这种方法绑定的事件只会触发一次,它的调用格式如下:
$(selector).one(event,[data],fun)
参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。
<div>请点击我一下</div><scripttype="text/javascript">$(function(){varintI=0;$("div").one("click",function(){intI++;$(this).css("font-size",intI+"px");})});</script>
7. trigger()方法可以直接手动触发元素指定的事件,这些事件可以是元素自带事件,也可以是自定义的事件,总之,该事件必须能执行,它的调用格式为:
$(selector).trigger(event)
其中event参数为需要手动触发的事件名称
<div>土豪,咱们交个朋友吧</div><scripttype="text/javascript">$(function(){$("div").bind("change-color",function(){$(this).addClass("color");});$("div").trigger("change-color");});</script>
8. 文本框的focus和blur事件
focus事件在元素获取焦点时触发,如点击文本框时,触发该事件;而blur事件则在元素丢失焦点时触发,
如点击除文本框的任何元素,都会触发该事件。
<inputid="txtest"type="text"value=""/><div></div><scripttype="text/javascript">$(function(){$("input").bind("focus",function(){$("div").html("请输入您的姓名!");})$("input").bind("blur",function(){if($(this).val().length==0)$("div").html("你的名称不能为空!");})});</script>
9. 下拉列表框的change事件
当一个元素的值发生变化时,将会触发change事件,例如在选择下拉列表框中的选项时,就会触change事件。
<selectid="seltest"><optionvalue="葡萄">葡萄</option><optionvalue="苹果">苹果</option><optionvalue="荔枝">荔枝</option><optionvalue="香焦">香焦</option></select><scripttype="text/javascript">$(function(){$("#seltest").bind("change",function(){if($(this).val()=="苹果")$(this).css("background-color","red");else$(this).css("background-color","green");})});</script>
10. 调用live()方法绑定元素的事件
与bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:
$(selector).live(event,[data],fun)
参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。
<scripttype="text/javascript">$(function(){$("#btntest").live("clickmouseout",function(){$(this).attr("disabled","true");});$("body").append("<inputid='btntest'type='button'value='点击或移出就不可用了'/>");});</script>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。