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 相关文章推荐
自己编写的支持Ajax验证的JS表单验证插件
May 15 Javascript
javascript实现uploadify上传格式以及个数限制
Nov 23 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
微信小程序之ES6与事项助手的功能实现
Nov 30 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
vue实现下拉加载其实没那么复杂
Aug 13 Javascript
javascript实现弹出层效果
Dec 10 Javascript
es5 类与es6中class的区别小结
Nov 09 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
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
JS实现简易计算器
2020/02/14 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
分分钟入门python语言
2018/03/20 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
旅游管理毕业生自荐书
2014/02/02 职场文书
德语专业求职信
2014/03/12 职场文书
环卫工作个人总结
2015/03/04 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
微信小程序和php的登录实现
2021/04/01 PHP
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers