一、JQuery中的事件
1.加载DOM
在页面加载完毕后,浏览器会通过 JavaScript 为 DOM 元素添加事件。在常规的 JavaScript 代码中,通常使用 window.onload 方法,在JQuery 中使用$(document).ready() 方法。JQuery中的简化写法“$()”。在window.onload中注册事件时,只能在一个window.onload体中注册。但使用JQuery,可以在多个$(document).ready()或$()中注册。
2.事件绑定
对匹配的元素对指定的事件绑定。
如,昨天我们在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() );
});
3.合成事件
hover():模拟光标悬停时间。当光标移动到元素上时,会触发指定的第一个函数,当光标移出这个元素时,会触发指定的第二个函数。如,悬停效果:$("td").hover( function () {$(this).addClass("hover");}, function () {$(this).removeClass("hover");});
toggle():用于模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数,当再一次单击同一个元素时,则触发指定的第二个函数,如果有更多个函数,则依次触发,直到最后一个。如,设置元素的选择与非选中效果:
$("td").toggle( function () {$(this).addClass("selected");}, function () {$(this).removeClass("selected");});
使用toggle()而不传递参数,效果为切换元素的可见状态。
4.事件的冒泡
事件会按照 DOM 层次结构像水泡一样不断向上只止顶端。
解决:在事件处理函数中返回 false,会对事件停止冒泡。还可以停止元素的默认行为。
目前的所有UI交互或其事件,都支持这个特性。 在自己的事件处理函数返回false将中止事件的继续向下传递。返回true事件继续向下传递。
5.事件对象的属性
事件对象:当触发事件时,事件对象就被创建了。在程序中使用事件只需要为处理函数添加一个参数。在事件处理函数中使用些参数。 如,获取事件发生时,相对于页面的位置:event.pageX, event.pageY,event是事件处理函数的参数。
6.移除事件
移除某按钮上的所有click 事件:$(“btn”).unbind(“click”)
移除某按钮上的所有事件:$(“btn”).unbind();
one():该方法可以为元素绑定处理函数。当处理函数触发一次后,事件立即被删除。即在每个对象上,事件处理函数只会被执行一次。
二、JQuery中的DOM动画
通过设置DOM对象的显示与隐藏方式,可以产生动画效果。
1.无动画效果的隐藏与显示
hide():在HTML文档中,为一个元素调用hide()方法会将该元素的display样式改为none。代码功能同css(“display”, “none”);相同。
show():将元素的display样式改为先前的显示状态。
toggle():切换元素的可见状态:如果元素时可见的,则切换为隐藏;如果元素时隐藏的,则切换为可见的。
2.通过设置透明度效果的隐藏与显示,达到淡入淡出的动画效果
fadeIn(),fadeOut():只改变元素的透明度。 fadeOut() 会在指定的一段时间内降低元素的不透明度,直到元素完全消失。 fadeIn() 则相反。如,用600毫秒缓慢的将段落淡入:$("p").fadeIn("slow");。
fadeTo():把不透明度以渐近的方式调整到指定的值(0 – 1 之间)。并在动画完成后可选地触发一个回调函数。如,用200毫秒快速将段落的透明度调整到0.25,动画结束后,显示一个“Animation Done”信息框:“$("p").fadeTo("fast", 0.25, function(){ alert("Animation Done."); });”。
3.通过设置高度效果的隐藏与显示,达到滑下与收起的动画效果
slideDown(),slideUp():只会改变元素的高度。如果一个元素的display属性为none,当调用slideDown() 方法时,这个元素将由上至下延伸显示。 slideUp() 方法正好相反,元素由下至上缩短隐藏。如,用600毫秒缓慢的将段落滑下:$("p").slideDown("slow");。
slideToggle():通过高度变化来切换匹配元素的可见性。如,200毫秒快速将段落滑上或滑下,动画结束后,会显示一个“Animation Done”信息框:“$("p").slideToggle("fast",function(){ alert("Animation Done."); });”。
使用JavaScript、JQuery可以处理当前页面的动态更新,再结合CSS样式可以做出十分漂亮的UI,甚至比桌面软件UI漂亮的多。JavaScript的编写与调试非常麻烦,所以也有一些公司出品了专门针对JavaScript应用的简化开发,比如Google出品的GWT,可以像使用Java编写swing那样编写JavaScript。它为用户提供像swing那样的UI接口与事件等操作并且支持JAVA的核心库。使用GWT自己的编译器,可以将JAVA代码编译为JavaScript代码、CSS样式文件和HTML。