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 相关文章推荐
用jscript实现列出安装的软件列表
Jun 18 Javascript
JavaScript闭包实例讲解
Apr 22 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
Angular4学习笔记之准备和环境搭建项目
Aug 01 Javascript
JavaScript贪吃蛇小组件实例代码
Aug 20 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
vue仿淘宝订单状态的tab切换效果
Jun 23 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
Vue.set 全局操作简单示例
Sep 19 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
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
PHP速成大法
2015/01/30 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
python简单商城购物车实例代码
2018/03/15 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
销售工作岗位职责
2013/12/24 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
安全生产活动月方案
2014/03/09 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
经典演讲稿开场白
2014/08/25 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
股东协议书范本2016
2016/03/21 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
Win2008系统搭建DHCP服务器
2022/06/25 Servers