JavaScript框架hover事件处理

2016-02-20 01:07 7 1 收藏

有了下面这个JavaScript框架hover事件处理教程,不懂JavaScript框架hover事件处理的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

每个JavaScript框架都实现跨浏览器的事件处理,鼓励你摆脱旧式的内联附加事件而使用精简的线性方法。看看清单6的jQuery例子,使用hover事件高亮显示div元素。

清单6:使用jQuery附加hover事件

$('#the-box').hover(function() {
   $(this).addClass('highlight');
}, function() {
   $(this).removeClass('highlight');
});

这是jQuery的一个特殊事件,你会发现它提供了两个函数。第一个在onMouseOver事件触发时调用,第二个函数在onMouseOut事件触发时调用。这是因为hover没有标准的DOM事件。让我们看看更为典型的事件,如click(瞧瞧清单7):

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

清单7:使用jQuery附加click事件

$('#the-button').click(function() {
   alert('You pushed the button!');
});

正如你看到的那样,实例中只有一个函数参数。jQuery中大多数事件均采用同样的方式处理,在jQuery中使用事件处理程序,上下文指的是触发事件的哪个对象。一些框架并不以这种方式工作,拿Prototype来说,清单7中的代码看起来就像清单8中的那样。

清单8:使用Prototype附加click事件

$('the-button').observe('click', function(e) {
    alert('You pushed the button!');
});

你首先会注意到,没有click函数,而是一个observe函数,它在引用自身之前接受一个事件参数。您还会注意到该函数接受一个参数e,这里的上下文指的是触发事件的元素。看看它如何工作,让我们用Prototype重写清单6中的代码(看清单9)。

清单9:使用Prototype附加悬停事件

$('the-box').observe('mouseover', function(e) {
    var el = Event.element(e);
    el.addClassName('highlight');
});
$('the-box').observe('mouseout', function(e) {
    var el = Event.element(e);
    el.removeClassName('highlight');
});

jQuery也不同,你只需要使用$函数得到上下文变量,Prototype库则使用Event.element() 函数。此外,你注意到你需要将mouseover和mouseout 事件分开。

通过该文章的一些教程,你可以看到函数以内联的方式创建,并不命名。这意味着它不能重复使用,Prototype的悬停示例也给了我们一个如何使用命名函数的机会。清单10说明了这个方法。

清单10:使用Prototype改进悬停事件

您会注意到,此时你只需定义一个函数。它同时被mouseover和mouseout事件调用。该函数根据元素是否有highlight的类名,并基于结果添加或删除之。你也会注意到,参数e隐式传递。换句话说,你给observe函数传递了一个不明确的参数。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

转载地址:http://www.denisdeng.com/?p=720

原文地址:http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html

function toggleClass(e) {
    var el = Event.element(e);
    if(el.hasClassName('highlight'))
        row.removeClassName('highlight');
    else
        row.addClassName('highlight');
}

$('the-box').observe('mouseover', toggleClass);
$('the-box').observe('mouseout', toggleClass);

来源:http://www.tulaoshi.com/n/20160220/1633315.html

延伸阅读
标签: Web开发
摘要 :现代网站和web应用程序趋向于依赖客户端的大量的 javascript 来提供丰富的交互。特别是通过不刷新页面的异步请求来返回数据或从服务器端的脚本(或数据系统)中得到响应。在这篇文章中,你将会了解到javascript框架如何更快、更方便的创建互动性强、响应快得网站和web应用程序。 导言 :JavaScript是一种面向对象的脚本语言,一直...
标签: Web开发
在很多语言的学习中,事件都是一个比较难理解,但是又是一个很重要的概念。javascript中的事件处理也是一样,正因为有了事件处理,才会出现Ajax拖动的效果。本文就讨论一下JavaScript中的事件处理,读过之后,您就会知道,很多Ajax框架实现拖动效果的原理了。 一、 IE Event对象 (一)IE Event对象的主要属性和方法 在IE中有一个专...
标签: Web开发
本节稍稍深入地讨论关于事件处理的话题,如果你对模式、闭包和面向对象等概念还不太理解,不妨暂且等阅读完相关内容之后再回过头来阅读它,相信你会有很大收获。 1 事件处理模式        在程序设计领域,“事件处理”是一种模式,当一个对象受外部影响而改变状态时,通过消息的方式将这个状态改变...
标签: Web开发
当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。 例: html head /head body Form Input type="text" name="Test" value="Test" onCharge="check('this.test)" /Form /body /html 下图所示: 此时的文本框的初始值是Test,如果改变它的值,在文本框中输入"5D多媒体",...
标签: Web开发
 onLoadExecutes JavaScript code when a load event occurs; that is, when the browser finishes loading a window or all frames within a FRAMESET tag. Navigator 2.0 Navigator 3.0: event handler of Image   语法onLoad="handlerText"参数   描述Use the onLoad event handler within either the BOD...

经验教程

291

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部