jquery 事件执行检测代码

2016-02-19 14:34 7 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享jquery 事件执行检测代码,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - Web开发 】

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

效果截图

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1607263.html

延伸阅读
win7系统如何通过Ping对网络进行检测 win7位旗舰版下载后在使用的过程中,用户会遇到电脑不能上网的原因,而此次将为各位带来的便是用Windows中的ping检测网络状况。一般来说电脑不能上网的原因有以下几个:系统IP设置问题、网卡原因以及线路故障,当用户排除是由于硬件问题,就可以使用ping命令进行系统故障的排查。 1、首先需要将...
标签: 电脑入门
最近有MAC用户发现MAC视网膜Retina屏幕残影的问题,这个问题影响着我们的使用,那么该如何修复这个问题呢?今天图老师小编给大家带来了一些简单的自行检测方法。 自行检测方法: 1.关掉屏幕保护和节电,保持屏幕常开; 2. 把屏幕桌面背景换为纯灰或深灰的纯色背景; 3.打开Google的主页(其他高对比度设计的网页也可以),放置30分钟...
标签: Web开发
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。 还不支持 blur, focus, mouseenter, mouseleave, change, submit 与bind()不同的是,live()一次只能绑定一个事件。 这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的...
标签: Web开发
提供方便方法操作cookie : 代码如下: $.cookie('the_cookie'); // 获得cookie $.cookie('the_cookie', 'the_value'); // 设置cookie $.cookie('the_cookie', 'the_value', { expires: 7 }); //设置带时间的cookie $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'sosuo8.com', secure: true }); $.cookie('the_...
标签: Web开发
jquery操作表单元素代码 /* 假设在一个表单中有一个按钮id="save" $(document).ready(function(){ $("#save").click(function(){ $("#save").attr("disabled",true);//设为不可用 $("#form1")[0].submit();//如果你有很多个id为form1的表单也没关系,只有第一个会提交的哈哈. }); }); 取下拉菜单选中项的文本; 获取和设置下拉菜单的值;...

经验教程

484

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部