首页 > 代码库 > JQuery中的事件

JQuery中的事件

加载DOM

在页面加载完毕后,浏览器会通过 JavaScript 为 DOM 元素添加事件。

在常规的 JavaScript 代码中,通常使用 window.onload 方法,在JQuery 中使用$(document).ready() 方法。

JQuery中的简化写法“$()”。

在window.onload中注册事件时,只能在一个window.onload体中注册。

但使用JQuery,可以在多个$(document).ready()或$()中注册。

事件绑定

对匹配的元素对指定的事件绑定。

如,在window.onload中绑定事件的方法:

“$("p").onclick(function(){

alert( $(this).text() );

});”

在JQuery的$(document).ready()中可以这样绑定:

“$("p").click(function(){

 alert( $(this).text() );

});”

使用bind(),可以这样绑定:

$("p").bind("click", function(){

alert( $(this).text() );

});

合成事件

hover():模拟光标悬停时间。当光标移动到元素上时,会触发指定的第一个函数,当光标移出这个元素时,会触发指定的第二个函数。

如,悬停效果:$("td").hover( function () {

$(this).addClass("hover");

}, function () {

$(this).removeClass("hover");

});

toggle():用于模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数,当再一次单击同一个元素时,则触发指定的第二个函数,如果有更多个函数,则依次触发,直到最后一个。

如,设置元素的选择与非选中效果:

$("td").toggle(

function () {

$(this).addClass("selected");

}, function () {

$(this).removeClass("selected");

});

使用toggle()而不传递参数,效果为切换元素的可见状态。

事件的冒泡

事件会按照 DOM 层次结构像水泡一样不断向上只止顶端。

解决:在事件处理函数中返回 false,会对事件停止冒泡。还可以停止元素的默认行为。

目前的所有UI交互或其事件,都支持这个特性。在自己的事件处理函数返回false将中止事件的继续向下传递。返回true事件继续向下传递。

事件对象的属性

事件对象:当触发事件时,事件对象就被创建了。在程序中使用事件只需要为处理函数添加一个参数。在事件处理函数中使用些参数。

如,获取事件发生时,相对于页面的位置:event.pageX, event.pageY,event是事件处理函数的参数。

移除事件

移除某按钮上的所有click 事件:$(“btn”).unbind(“click”)

移除某按钮上的所有事件:$(“btn”).unbind();

one():该方法可以为元素绑定处理函数。当处理函数触发一次后,事件立即被删除。即在每个对象上,事件处理函数只会被执行一次。

JQuery中的事件