jquery 事件执行检测代码


前两天做城市搜索的时候,我对搜索按钮绑定了事件,如果输入栏内的文字不符合要求就用标签提示(标签展示出来后对document绑定click,点击后隐藏标签)并使输入栏获得焦点。就这样一个小功能我调试了、3个多小时,IE 里表现的是标签一闪而过,后来发现是按钮的点击事件和input的交替出发了多次,估计是事件回退发生的,用了preventDefault() 和 stopPropagation()两个函数后修正了问题。虽然问题解决了,但是事件的执行顺序真是很难掌握呀,于是我做了个简单的事件监测函数,可以自动记录页面事件触发,见如下代码(首先肯定要引入jquery!...)

复制代码 代码如下:

//事件执行监测
function eventsMonitor(op){
var defaultSetting = {
eventsStr: "click focus blur",
splitStr: " ",
css:{
"border":"1px red solid",
"z-index":9000000,
"background":"white",
"position":"absolute",
width:400,
height:200,
"overflow-x":"hidden",
"overflow-y":"auto"
}
};
var ops = $.extend(true,defaultSetting,op);
$('<div id="DivForLogEvents"><div></div><div>').appendTo("body").css(ops.css);
var $infolog = $("#DivForLogEvents div:eq(0)");
$.each(ops.eventsStr.split(ops.splitStr),function(i,v){
if(v != 'resize')
$("*:not('#DivForLogEvents')").bind(v, function(e){
if(!$(e.target).is("#DivForLogEvents") && !$(e.target).is($infolog)){
$infolog.append((e.target.nodeName||" ") + "->" + (e.target.id||e.target.Name||" ") + " "+v+" event!<br>");
$("#DivForLogEvents:not(:animated)").animate({scrollTop:$infolog.height()},300);
}
});
else
$(window).bind('resize', function(e){
if(!$(e.target).is("#DivForLogEvents") && !$(e.target).is($infolog)){
$infolog.append((e.target.nodeName||" ") + "->" + (e.target.id||e.target.Name||" ") + " "+v+" event!<br>");
$("#DivForLogEvents:not(:animated)").animate({scrollTop:$infolog.height()},300);
}
});
});
}

调用方法示例
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><!--Google CDN-->
<script type="text/javascript" src="eventsMonitor.js"></script><!--Google CDN-->
<script type="text/javascript">

$(document).ready(function(){
eventsMonitor({
css:{top:0,right:20},
eventsStr:"click blur focus select scroll mousewheel resize"
});

$("#info").click(function(){$(this).text($("#DivForLogEvents").outerHeight());});
});

</script>
</head>
<body>

Hello world
<img src="/upload/2009-12/20091209042029557.gif" />
<input type="text" id="name" value="测试" />
<span id="info">ffffffff</span>
</body>
</html>

效果截图



相关阅读:
图片加密
jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码
SQL Server 2005最值得你升级的10个理由
深入浅出SQL系列教程之SQL语言简介
linux服务器搭建步骤层层剖析
SQL Server提示"选定的用户拥有对象,所以无法除去该用户”
JavaScript 拖拉缩放效果
用bat操作注册表实现不显示扩展名
smarty静态实验表明,网络上是错的~呵呵
Oracle Redo并行机制
记录linux操作命令日志
asp.net ajaxControlToolkit ValidatorCalloutExtender的简单用法
JavaScript indexOf忽略大小写
解析Windows Server 2008服务器管理控制台
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 马云:机会,就在那些“被抱怨的地方” 初三学生读后感 贪官岂能“逃出生天” 小学六年级作文3250字:垃圾斯国王覆灭记 亦舒:情死 小鸟的呼救400字 村居 张舜民_村居 古诗 看《变形金刚4》(2)后感 教师节祝福短信41 一碗汤面 题山中故静禅师 怎样保护视力_关于保护视力的小学生作文700字 长篇小说《蛋壳》第六十六节 北宋初年名相李昉的贡献李昉的成就有哪些 读《红楼梦》有感1200字 工作失误检讨书800字 《我的老师》两篇同题作文1500字 五一祝福短信20 散文随笔:收获辛福 百变的花朵吸引着我 手抄党章心得体会2016最新 你,向我招手 游葡萄沟 Virtue never grows old.//英文名言名句精选 水调歌头(冬至) 去广场作文250字 逗人喜欢的波斯猫400字 劳教所关于建设平安场所的实施方案 作文 为祖国而骄傲! 姥姥,多希望您还在_关于心的初中话题作文800字 台湾科学教育考察报告_考察报告 名牌大学不等于名牌人生 义愤填膺的时候你要怎么做? 流行魔方 教师实习心得体会 父女 认识你偶然,忘记你很难 风啸中(武侠小说) 东北教育考察报告 一座空城充满多少回忆醉了多少人心毁了多少爱情° 童话作文200字 【精品】2014年辅导员年终总结 有情不必终老 小学四年级作文400字:爬山记 未来的五十年“天降美食” 跌到了,要自己爬起来 夫妻就是搞笑之家 创意高考祝福语 较量650字 清风明月,自然真实

Copyright © 2016 phpStudy |