动态标签 悬停效果 延迟加载示例代码


Posted in Javascript onNovember 21, 2013

----------------------对于动态的标签绑定事件------------------------

var outTimer;//执行时间 
var upTimer;//执行时间 
var sqDiv = $("#tm");//要显示的div 
var test="";//标识,为了将鼠标移到显示的div上时,div不会消失 
var dd = "";//划过某一字段传的值 
function test1(){ 
$("#tm").empty();//现将div清空 
$.ajax({ //往里加数据 
type:"post", 
url:"<%=path %>/webmodule/constructionDecision/BaseCD/getCommunityInfo.do?stCode="+dd, 
dataType:"json", 
async:false, 
success:function(data){ 
var td=""; 
for(var i=0;i<data.length;i++){ 
td+="<a id ='"+data[i].gridNumber+"'>"+data[i].name+"</a>"; 
} 
$("#tm").append(td); 
} 
}); 
$("#tm").show(); 
} function test2(){//隐藏div的方法 
if(test ==""){ 
$("#tm").hide(); 
} 
} 
$("#cityTable a").die().live('mouseover mouseout', function(event) { //给动态标签绑定事件 
if(event.type=='mouseover'){ //移上时 
clearTimeout(outTimer);//先清空移出的时间,这样能避免鼠标划过就执行函数,减轻服务器的压力 
dd=$(this).attr("id"); 
upTimer = setTimeout(test1, 500);//0.5秒后再执行 
} 
if(event.type=='mouseout'){ 
sqDiv.hover( 
function(){ 
test = "on";//说明鼠标在显示的div上 
},function(){ 
test = ""; 
test2(); 
}); 
clearTimeout(upTimer); 
outTimer = setTimeout(test2, 500); 
} 
});

----------------------------非动态标签(查询资料)-----------------------------------
//hoverDuring 鼠标经过的延时时间 
//outDuring 鼠标移出的延时时间 
//hoverEvent 鼠标经过执行的方法 
//outEvent 鼠标移出执行的方法 
$( function() { 
$.fn.hoverDelay = function(options) { 
var defaults = { 
hoverDuring :200, 
outDuring :200, 
hoverEvent : function() { 
$.noop(); 
}, 
outEvent : function() { 
$.noop(); 
} 
}; 
var sets = $.extend(defaults, options || {}); 
var hoverTimer, outTimer; 
return $(this).each( function() { 
$(this).hover( function() { 
clearTimeout(outTimer); 
hoverTimer = setTimeout(sets.hoverEvent, sets.hoverDuring); 
}, function() { 
clearTimeout(hoverTimer); 
outTimer = setTimeout(sets.outEvent, sets.outDuring); 
}); 
}); 
}

//$("#sosoFod h3").each( function() { 
$("#sosoweb").each( function() { 
var test = "";//当test为空时,鼠标移到字段显示div,移出隐藏div 
var that = $(this); 
var id = that.attr("id"); 
var div = $("#tm"); 
div.css("position", "absolute");//让这个层可以绝对定位 
that.hoverDelay( { 
outDuring :1000, 
hoverEvent : function() { 
div.css("display", "block"); 
var p = that.position(); //获取这个元素的left和top 
var x = p.left + that.width();//获取这个浮动层的left 
var docWidth = $(document).width();//获取网页的宽 
if (x > docWidth - div.width() - 20) { 
x = p.left - div.width(); 
} 
div.css("left", x); 
div.css("top", p.top); 
//$("#tm").show(); }, 
outEvent : function() { 
$("#tm").hoverDelay( { 
outDuring :1000, 
hoverEvent : function() { 
test = "on"; 
$("#tm").show(); 
}, 
outEvent : function() { 
test=""; 
$("#tm").hide(); 
} 
}); 
if(test==""){ 
$("#tm").hide(); 
} 
} 
}); 
});
Javascript 相关文章推荐
读jQuery之十 事件模块概述
Jun 27 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
Aug 26 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
Jan 07 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 Javascript
老生常谈js动态添加事件--- 事件委托
Jul 19 Javascript
Vue脚手架的简单使用实例
Jul 10 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
vue移动端城市三级联动组件使用详解
Jul 26 Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 Javascript
解决vue初始化项目一直停在downloading template的问题
Nov 09 Javascript
js实现上传图片到服务器
Apr 11 Javascript
JS两种定义方式的区别、内部原理
Nov 21 #Javascript
jQuery操作input值的各种方法总结
Nov 21 #Javascript
jqgrid 表格数据导出实例
Nov 21 #Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 #Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
Nov 21 #Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 #Javascript
js 实现菜单上下显示附效果图
Nov 21 #Javascript
You might like
解决GD中文乱码问题
2007/02/14 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
对命令行模式与python交互模式介绍
2018/05/12 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python实现推箱子游戏
2020/03/25 Python
python如何实现视频转代码视频
2019/06/17 Python
python版百度语音识别功能
2019/07/09 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
英语道歉信范文
2014/01/09 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
环保小标语
2014/06/13 职场文书
科学发展观标语
2014/10/08 职场文书
学生检讨书范文
2014/10/30 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
烈士陵园观后感
2015/06/08 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
MySQL基础(一)
2021/04/05 MySQL
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js
Python机器学习之KNN近邻算法
2021/05/14 Python