js活用事件触发对象动作_javascript技巧

从学习W3C标准以来,对于代码我好像养成了一种怪癖,能统一复用的,就不会多写一点东西,这样前台页面代码看起来会清爽很多,而效率也会成直线上升.

复制代码 代码如下:

<script type="text/javascript">
<!--
//定义鼠标触发事件的范围
function findOutDiv(thisEvent){
//利用循环查找符合CSS样式名字的对象
    while(thisEvent.className != "piccell"){
//如果这个对象的标签名字是HTML就停止,然后让事件对象不存在,用做后面的判断
        if(thisEvent.tagName == "HTML"){
            thisEvent = false;
            break;
        }else{
//否则继续下个对象,即他的父对象
            thisEvent = thisEvent.parentNode
        }
    }
//返回事件对象,如果事件对象不存在返回假
    return thisEvent;
}
//利用鼠标在对象移动属性作为时间触发行为
document.onmouseover = function(e){
//这个e是FireFox捕捉事件触发对象的方法
    if(!e)e = window.event;
//定义Event给于鼠标触发对象的实体,即符合标准并可以控制的对象
//target为FF专用,srcElement为IE专用
    var Event = e.target?e.target:e.srcElement
//定义可控制的对象,调用鼠标触发事件范围所返回的对象
    var thisEvent = findOutDiv(Event)
//如果对象存在就继续
    if(thisEvent){
//给对象定义CSS样式
        thisEvent.style.border = "2px solid #7A99D2";
        thisEvent.style.background = "#D2E4FC";
    }
}
//同上,利用鼠标在对象移出作为时间触发行为
document.onmouseout = function(e){
    if(!e)e = window.event;
    var Event = e.target?e.target:e.srcElement
    var thisEvent = findOutDiv(Event)
    if(thisEvent){
        thisEvent.style.border = "2px solid #CCC";
        thisEvent.style.background = "#FFF";
    }
}
// -->
</script>

这样写的好处显而易见,可以不用在每个对象中写触发动作的行为,极大的节省了代码,并且JS更有可读性.
过段时间等我把个性化页面整理完成后发布出来,让大家看看利用事件触发对象动作的好处.
GOOGLE,和微软的LIVE他的个性化页面写的很不错,所以大家都可以学习一下他们的代码,这样对你将来的AJAX应用会有非常大的帮助. 

时间: 2024-11-14 12:04:55

js活用事件触发对象动作_javascript技巧的相关文章

Javascript中活用事件触发对象动作

现在基本上我很少在对象里面写事情触发行为了,因为感觉那样做相同的对象代码利用率太低,容易导致代码冗余. 从学习W3C标准以来,对于代码我好像养成了一种怪癖,能统一复用的,就不会多写一点东西,这样前台页面代码看起来会清爽很多,而效率也会成直线上升. 下面来讲一下最近一个项目里面比较有代表性的东西. (实例可以查看这里http://www.pplive.com/zh-cn/view.html) 程序代码 <script type="text/javascript"> <!

js添加绑定事件的方法_javascript技巧

先介绍js添加事件通用方法,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <p id="p1">测试添加事件:firefox使用addEventListener,ie使用attachEvent<br> 点击此p标签

获取焦点时,利用js定时器设定时间执行动作_javascript技巧

进入正题,先说说定时器. 在javascritp中,有两个关于定时器的专用函数,分别为: 1.倒计定时器:timename=setTimeout("function();",delaytime); 2.循环定时器:timename=setInterval("function();",delaytime); 第一个参数"function()"是定时器触发时要执行的动作,可以是一个函数,也可以是几个函数,函数间用":"隔开即可.比

用JS控制回车事件的代码_javascript技巧

我们操作习惯也确实是喜欢用回车建来直接提交数据.经过对项目的一番检查,这其实是页面设计得不好,导致浏览器在加载时把退出登录按钮当成默认的按钮,所以一按回车就触这退出按钮事件.考虑到一个庞大的项目为了这个问题去改页面设计也不太现实,况且客户要求在有"保存"按钮时按回车按钮就触发"保存"按钮事件,有"下一步"按钮时就触发它的事件,有"提交"按钮时就触发相应的事件等等,如果一个个页面去改动那工作量可就大得惊人了.于是乎考虑用直接在模

JS定义回车事件(实现代码)_javascript技巧

复制代码 代码如下: $(function () {            //定义回车事件            if (document.addEventListener) {//如果是Firefox                document.addEventListener("keypress", fireFoxHandler, true);            }            else {                document.attachEvent

js监听键盘事件示例代码_javascript技巧

复制代码 代码如下: <script type="text/javascript" language=JavaScript charset="UTF-8"> var isPiss=0; document.onkeydown=function(event){ var e = event || window.event || arguments.callee.caller.arguments[0]; if(e && e.keyCode==27

js事件冒泡、事件捕获和阻止默认事件详解_javascript技巧

谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. 1.事件冒泡先来看一段代码: var $input = document.getElementsByTagName("input")[0]; var $div = document.getElementsByTagName("div")[0]; var $body = document.getElementsByTagName("bod

易被忽视的js事件问题总结_javascript技巧

一.跨平台事件 什么叫跨平台事件?即在不同的浏览器上执行同一事件,所使用的方法不同. 什么是EventUtil对象?有什么作用?即将所有与事件相关的函数,融合在一起的一个容器,方便管理事件对象,它没有属性.主要处理DOM事件和IE事件的磨合,使其尽可能的相似. 下面我们来看一下DOM和IE之间的对象属性和方法做个对比(这里只指出两者之间不同的属性和方法),主要有以下五大点:DOM属性和方法   IE属性和方法 charcode               keycode preventDefau

移动端js触摸事件详解_javascript技巧

在移动开发中,一种较为容易的做法是,先在桌面上开始原型设计,然后再在打算要支持的设备上处理移动特有的部分.多点触摸正是难以在PC上进行测试的那些功能之一,因为大部分的PC都没有触摸输入.  不得不在移动设备上进行的测试有可能会拉长你的开发周期,因为你所做的每项改变都需要提交代码到服务器上,接着再加载到设备上.然后,一旦运行后,对应用也就没有太多的调试了,因为平板电脑和智能手机都很缺乏web开发者所用的工具. 这个问题的一个解决方案是在开发机器上模拟触发事件.对于单点触摸,触摸事件可以基于鼠标事件