【发布时间】:2014-09-14 12:23:38
【问题描述】:
我的代码有问题,我正在尝试创建一个函数来隐藏和显示一个 div 它正在工作,但一开始它不起作用,它只在第二次点击时起作用,所以我必须先点击链接才能让它开始正常工作,我该如何修复它以便它在第一次点击时起作用?
更多信息:
我试图让一个 div 出现然后在显示和隐藏功能中消失,问题是当我在 div 之外时我也希望它消失,如果它可见,它所有工作但问题是当我第一次加载页面然后单击链接以显示 div,它不会出现,只有当我第二次单击它时才会出现。这是我要解决的问题
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/jquery.foggy.min.js"></script>
<style>
body {
background: black;
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-size: 100%;
color: white;
font-family: 'Segoe UI';
font-size: 24px;
}
.box
{
width: 100%;
margin: auto;
top: 0px;
left: 20%;
right: 0px;
bottom: 0px;
background-color: white;
opacity: 0.4;
position: fixed;
overflow-y: scroll;
overflow-x: scroll;
}
</style>
</head>
<body>
<script lang="en" type="text/javascript">
$(document).ready(function () {
});
$(document).mouseup(function (e) {
var container = $("#boxwrapper");
if (!container.is(e.target) && container.has(e.target).length === 0) {
if (container.is(':visible'))
Hide();
}
});
function Display() {
$("#boxwrapper").show();
$("#boxwrapper").addClass("box");
$("#main").foggy();
}
function Hide() {
$("#boxwrapper").hide();
$("#main").foggy(false);
}
</script>
<div id="main">
<a href="#" onclick="Display()">Display Div</a>
</div>
<div id="boxwrapper">
</div>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</body>
</html>
【问题讨论】:
-
“所以我必须先点击链接才能让它开始正常工作,我该如何修复它以便它在第一次点击时工作”: - 首先点击什么..?
-
@TJ 那个 jsfiddle 演示了什么?它似乎没有做任何事情。 编辑哦等等我看到了。
-
@Pointy 好吧,你首先是对的。我认为第一次点击链接没有显示 div...我不确定 OP 还想点击什么.. 0__0
-
你到底想做什么?为什么需要在文档上使用 mouseup?
-
我试图让一个 div 出现,然后在显示和隐藏功能中消失,问题是我也希望它在我在 div 之外时消失,如果它可见,它所有的工作,但问题是当我第一次加载页面然后单击链接以显示 div 时,它不会出现,只有当我第二次单击它时才会出现。这是我要解决的问题
标签: javascript jquery