jquery 事件执行检测代码

90後涛涛I

90後涛涛I

2016-02-19 14:34

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享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/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

效果截图

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

jquery 事件执行检测代码

Web开发
jquery 事件执行检测代码

JQuery Easyui Tree的oncheck事件实现代码

Web开发
JQuery Easyui Tree的oncheck事件实现代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

jquery HotKeys轻松搞定键盘事件代码

Web开发
jquery HotKeys轻松搞定键盘事件代码

jQuery学习5 jQuery事件模型

Web开发
jQuery学习5 jQuery事件模型

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

jQuery入门[3]-事件

Web开发
jQuery入门[3]-事件

jquery ajax执行后台方法

Web开发
jquery ajax执行后台方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

jquery自动完成插件(autocomplete)应用之PHP版

jquery自动完成插件(autocomplete)应用之PHP版

高手解决局域网IP地址冲突有一招

高手解决局域网IP地址冲突有一招
下拉加载更多内容 ↓