当前位置: 首页 > 图文教程 > 网络编程 > Javascript > js活用事件触发对象动作

Javascript
提高网站信任度的技巧
javascript脚本编程解决考试分数统计问题
图片上传之前检查大小、尺寸、格式并预览的js代码
JavaScript打开客户端exe文件的代码
JavaScript confirm选择判断
javascript title闪动效果
javascript把15位身份证转成18的函数
新人报道,发个小技巧(js数组重复判断)
Javascript this关键字使用分析
javascript TextArea动态显示剩余字符
JavaScript Undefined,Null类型和NaN值区别
javascript Select标记中options操作方法集合
javascript trim 去空格函数实现代码
javascript网页关闭时提醒效果脚本
checkbox 多选框 联动实现代码
收集的比较全的automation服务器不能创建对象 异常原因和解决方法
Javascript客户端将指定区域导出到Word、Excel的代码
IE浏览器兼容Firefox的JS脚本的代码
在html页面中包含共享页面的方法
javascript replace()用法详解附实例代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 160 ::
收藏到网摘: n/a

现在基本上我很少在对象里面写事情触发行为了,因为感觉那样做相同的对象代码利用率太低,容易导致代码冗余. 从学习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应用会有非常大的帮助.