比如:
<a href='#'>详情</a>
点击“详情”,在“详情”的正下方出现一个漂浮的DIV 显示详细信息,
问题:如何实现点击除DIV 之外的任意地方都关闭DIV?求代码!JS JQ都行,要能通用,因为一个页面很多处这样的东西!
<a href='#'>详情</a>
点击“详情”,在“详情”的正下方出现一个漂浮的DIV 显示详细信息,
问题:如何实现点击除DIV 之外的任意地方都关闭DIV?求代码!JS JQ都行,要能通用,因为一个页面很多处这样的东西!
解决方案 »
- 不能操作文件,不能。
- 如何在父窗口中关闭所有window.open的子窗口
- Highcharts的左边的刻度怎么设整,最好能固定刻度
- 大家都是怎么调试程序的啊,我快被JS折磨死了
- 本人js新手,纯新手,想用jQuery中封装的ajax来实现不跳转验证用户名是否已经存在,用的SSH的框架
- 关于使用AlphaImageLoader装载png透明图的问题--急.
- 切换城市问题
- 一个给表单隐藏域复制的问题
- 请问怎么用javascirpt 实现像qq里的好友那样的上下滚动!
- nodejs+es6+webpack开发Error: Cannot find module "fs"
- 把js和css代码放到<head>标签里有什么好处吗?
- FF下如何获取Iframe页面的所有内容
你都说了页面很多处这样的东西,如果你一下子点击很多,出现了很多弹出的div,那么处理起来会很乱的,个人感觉。
就可以了
<html>
<head>
<script type="text/javascript">
document.onclick=function(){
document.getElementById("div").style.display="none";
}
function clickDiv(div){
div.style.display="";
var b = window.event;
b.cancelBubble = true;
}
</script>
</head>
<body>
<div onclick="clickDiv(this)" id="div" style="background-color:yellow;border:1px solid red;width:300px;height:200px;position:absolute;left:300px;top:200px;">
</div>
</body>
</html>
在显示详细信息的DIV的下面,建一个透明的全屏DIV,在该DIV上加onclick事件即可
<div style="z-index:1100;background-color: rgb(102, 102, 102); opacity: 0.3; display: block;..." onclick="document.getElementById('aaa').style.display='none'"></div>
<div id="aaa">详细信息</div>
$(document).ready(function(){
$(document).bind('click', Hide);
});
function Hide(e){
if($(e.target)[0].id =="Pop" )
return;
$("#Pop").hide();
}这样子. 还要注意Pop的子元素冒泡要排除掉.
如果还要进一步优化的话, 就在hide了以后unbind这个click事件, 在点a show()的时候再bind. 效率层面上的优化..如果页面不复杂就不必要了
是不是很简单,如果不懂的话,我可以写代码出来~~~
还是10楼有点靠谱,
现在 求个好用的ToolTip 插件 简单点 体积小就行
1点结贴。。
jTip - The jQuery Tool Tip .
clueTip .
BetterTip .
Flash Tooltips using jQuery .
ToolTip .
更多插件参考http://blog.csdn.net/IBM_hoojo/archive/2010/06/24/5691142.aspx<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>floatDiv2.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
#show {
border: 1px solid black;
background-color: #E5F0FB;
position: absolute;
width: 150px;
height: 100px;
display: none;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function () {
$(document).click(function (e) {
if (e.target.id != "show") {
$("#show").hide();
}
});
$("a").click(function (e) {
$("#show").css({left: e.clientX, top: e.clientY}).show();
return false;//防止冒泡
});
});
</script>
</head>
<body>
<a href="#">click me</a>
<div id="show"></div>
</body>
</html>
<html>
<head>
<script type="text/javascript">
document.onclick=function(){
var div = document.getElementById("div");
var loc = getLoc(div);
var e = window.event;
if ((e.clientX >= loc.locX && e.clientX <= (parseInt(loc.locX) + parseInt(div.offsetWidth))) && (e.clientY >= loc.locY && e.clientY <= (parseInt(loc.locY) + parseInt(div.offsetHeight)))){
div.style.display = "";
} else {
div.style.display = "none";
}
}
var loc = function() {
this.locX = 0;
this.locY = 0;
}
function getLoc(el){
var x = el.offsetLeft;
var y = el.offsetTop;
while(el = el.offsetParent){
x += el.offsetLeft;
y += el.offsetTop;
}
var divLoc = new loc();
divLoc.locX = x;
divLoc.locY = y;
return divLoc;
}
</script>
</head>
<body>
<div id="div" style="background-color:yellow;border:1px solid red;width:300px;height:200px;position:absolute;left:300px;top:200px;">
</div>
</body>
</html>根据鼠标点击位置判断是否在div内
jQuery的fancybox效果,关闭弹出的放大图片,就是用的满屏DIV