jquery 事件执行检测代码


Posted in Javascript onDecember 09, 2009

前两天做城市搜索的时候,我对搜索按钮绑定了事件,如果输入栏内的文字不符合要求就用标签提示(标签展示出来后对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 事件执行检测代码

Javascript 相关文章推荐
JavaScript中void(0)的具体含义解释
Feb 27 Javascript
javascript跑马灯悬停放大效果实现代码
Dec 12 Javascript
js实现二代身份证号码验证详解
Nov 20 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
javascript实现瀑布流加载图片原理
Feb 02 Javascript
element-ui使用导航栏跳转路由的用法详解
Aug 22 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 Javascript
基于AngularJs select绑定数字类型的问题
Oct 08 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
vue-simple-uploader上传成功之后的response获取代码
Sep 07 Javascript
为指定元素增加样式的js代码
Dec 09 #Javascript
javascript setTimeout和setInterval 的区别
Dec 08 #Javascript
javascript OFFICE控件测试代码
Dec 08 #Javascript
JavaScript Cookie 直接浏览网站分网址
Dec 08 #Javascript
JavaScript Cookie显示用户上次访问的时间和次数
Dec 08 #Javascript
JavaScript 利用Cookie记录用户登录信息
Dec 08 #Javascript
JavaScript Cookie的读取和写入函数
Dec 08 #Javascript
You might like
php下过滤HTML代码的函数
2007/12/10 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
javascript web页面刷新的方法收集
2009/07/02 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python中for循环控制语句用法实例
2015/06/02 Python
python多线程socket编程之多客户端接入
2017/09/12 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
解决python对齐错误的方法
2020/07/16 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
写好求职信第一句话的技巧
2013/10/26 职场文书
证婚人经典证婚词
2014/01/09 职场文书
医药销售求职信范文
2014/02/01 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
学术会议通知范文
2015/04/15 职场文书
十七岁的单车观后感
2015/06/12 职场文书
小学英语听课心得体会
2016/01/14 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
PyTorch中的torch.cat简单介绍
2022/03/17 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫