Jquery parents 不工作
Jquery parents not working
我有一个关于 jquery parents 的问题。
我从 codepen.io
创建了这个 DEMO
在这个演示中你可以看到有一棵树 link 显示 div, 显示 div2 和 显示 div3。如果你点击 Show div 然后 jquery 代码将打开 .popup
和 .openingdiv
但其他 link 不工作相同的代码。有人可以帮我吗?
$(document).ready(function() {
$('.click').click(function (e) {
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 300, 'linear');
$('.popup').css('display', 'block');
$(this).parent().next('.openingdiv').toggleClass('height');
$(this).toggleClass('zindex');
$('.closediv a').click(function(e){
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 500, 'linear');
$('.popup').css('display', 'none');
$(this).closest('.openingdiv').removeClass('height');
});
})
$('.click2').click(function (e) {
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 300, 'linear');
$('.popup').css('display', 'block');
$(this).parent().next('.openingdiv2').toggleClass('height');
$(this).toggleClass('zindex');
$('.closediv2 a').click(function(e){
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 500, 'linear');
$('.popup').css('display', 'none');
$(this).closest('.openingdiv2').removeClass('height');
});
})
});
HTML
<div class="container">
<div class="click"><a href="#">Show Div</a></div>
<div class="click2"><a href="#">Show Div2</a></div>
<div class="click3"><a href="#">Show Div3</a></div>
</div>
<div class="openingdiv">
<div class="closediv"><a href="#">close</a></div>
</div>
<div class="openingdiv2">
<div class="closediv2"><a href="#">close2</a></div>
</div>
<div class="openingdiv3">
<div class="closediv3"><a href="#">close3</a></div>
</div>
<div class="popup"></div>
因为你用过
$('.popup').css('display', 'block');
您可以使用 'none' 来激活其他链接或完全以另一种方式编写吗?
请在此处检查这支笔。它使用 .on() 绑定事件
http://codepen.io/anon/pen/NPdgmK(更新)
<html>
<div class="container">
<div class="click button" data-opener="1"><a href="#">Show Div</a></div>
<div class="click2 button" data-opener="2"><a href="#">Show Div2</a></div>
<div class="click3 button" data-opener="3"><a href="#">Show Div3</a></div>
</div>
<div class="openingdiv1 opener">
<div class="closediv closer"><a href="#">close</a></div>
</div>
<div class="openingdiv2 opener">
<div class="closediv closer"><a href="#">close2</a></div>
</div>
<div class="openingdiv3 opener">
<div class="closediv closer"><a href="#">close3</a></div>
</div>
<div class="popup"></div>
</html>
<style>
.container{
width:540px;
height:auto;
margin:0px auto;
margin-top:50px;
}
.click{
float:left;
width:64px;
height:64px;
border:1px solid #d8dbdf;
font-size:13px;
font-weight:bold;
font-family:arial,sans-serif;
text-align:center;
line-height:64px;
}
.click2{
float:left;
width:69px;
height:64px;
border:1px solid #d8dbdf;
font-size:13px;
font-weight:bold;
font-family:arial,sans-serif;
text-align:center;
line-height:64px;
margin-left:10px;
margin-right:10px;
}
.click3{
float:left;
width:69px;
height:64px;
border:1px solid #d8dbdf;
font-size:13px;
font-weight:bold;
font-family:arial,sans-serif;
text-align:center;
line-height:64px;
}
.popup {
position:fixed;
top:0px;
left:0px;
width:100%;
height:100%;
background:#000;
opacity: .0;
filter:alpha(opacity=0);
z-index:300;
display:none;
}
.opener {
float:left;
width:540px;
height:0;
border:1px solid #d8dbdf;
z-index:999;
position: relative;
overflow: hidden;
-webkit-transition: height 1s ease;
-moz-transition: height 1s ease;
-o-transition: height 1s ease;
transition: height 1s ease;
background-color: #ffffff;
}
.opener.height {
height: 200px;
}
.zindex {
z-index:9999;
position:relative;
}
.closer {
padding:15px;
float:right;
margin:0px;
position:absolute;
bottom:0px;
right:0px;
}
.closer a {
text-decoration:none;
color:#000;
font-weight:bold;
font-size:13px;
font-family:arial,sans-serif;
}
</style>
<script>
$(document)
.on('click','.button',function (event) {
event.preventDefault();
var opener = $(this).data('opener');
$('.popup').animate({'opacity':'.50'}, 300, 'linear');
$('.popup').css('display', 'block');
$('.openingdiv'+opener).addClass('height');
//$(this).toggleClass('zindex');
})
.on('click','.closediv a',function (event) {
event.preventDefault();
$('.popup').animate({'opacity':'.50'}, 500, 'linear');
$('.popup').css('display', 'none');
$(this).closest('.opener:visible').removeClass('height');
})
; // $(document)
</script>
我有一个关于 jquery parents 的问题。
我从 codepen.io
创建了这个 DEMO在这个演示中你可以看到有一棵树 link 显示 div, 显示 div2 和 显示 div3。如果你点击 Show div 然后 jquery 代码将打开 .popup
和 .openingdiv
但其他 link 不工作相同的代码。有人可以帮我吗?
$(document).ready(function() {
$('.click').click(function (e) {
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 300, 'linear');
$('.popup').css('display', 'block');
$(this).parent().next('.openingdiv').toggleClass('height');
$(this).toggleClass('zindex');
$('.closediv a').click(function(e){
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 500, 'linear');
$('.popup').css('display', 'none');
$(this).closest('.openingdiv').removeClass('height');
});
})
$('.click2').click(function (e) {
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 300, 'linear');
$('.popup').css('display', 'block');
$(this).parent().next('.openingdiv2').toggleClass('height');
$(this).toggleClass('zindex');
$('.closediv2 a').click(function(e){
e.preventDefault();
$('.popup').animate({'opacity':'.50'}, 500, 'linear');
$('.popup').css('display', 'none');
$(this).closest('.openingdiv2').removeClass('height');
});
})
});
HTML
<div class="container">
<div class="click"><a href="#">Show Div</a></div>
<div class="click2"><a href="#">Show Div2</a></div>
<div class="click3"><a href="#">Show Div3</a></div>
</div>
<div class="openingdiv">
<div class="closediv"><a href="#">close</a></div>
</div>
<div class="openingdiv2">
<div class="closediv2"><a href="#">close2</a></div>
</div>
<div class="openingdiv3">
<div class="closediv3"><a href="#">close3</a></div>
</div>
<div class="popup"></div>
因为你用过
$('.popup').css('display', 'block');
您可以使用 'none' 来激活其他链接或完全以另一种方式编写吗?
请在此处检查这支笔。它使用 .on() 绑定事件
http://codepen.io/anon/pen/NPdgmK(更新)
<html>
<div class="container">
<div class="click button" data-opener="1"><a href="#">Show Div</a></div>
<div class="click2 button" data-opener="2"><a href="#">Show Div2</a></div>
<div class="click3 button" data-opener="3"><a href="#">Show Div3</a></div>
</div>
<div class="openingdiv1 opener">
<div class="closediv closer"><a href="#">close</a></div>
</div>
<div class="openingdiv2 opener">
<div class="closediv closer"><a href="#">close2</a></div>
</div>
<div class="openingdiv3 opener">
<div class="closediv closer"><a href="#">close3</a></div>
</div>
<div class="popup"></div>
</html>
<style>
.container{
width:540px;
height:auto;
margin:0px auto;
margin-top:50px;
}
.click{
float:left;
width:64px;
height:64px;
border:1px solid #d8dbdf;
font-size:13px;
font-weight:bold;
font-family:arial,sans-serif;
text-align:center;
line-height:64px;
}
.click2{
float:left;
width:69px;
height:64px;
border:1px solid #d8dbdf;
font-size:13px;
font-weight:bold;
font-family:arial,sans-serif;
text-align:center;
line-height:64px;
margin-left:10px;
margin-right:10px;
}
.click3{
float:left;
width:69px;
height:64px;
border:1px solid #d8dbdf;
font-size:13px;
font-weight:bold;
font-family:arial,sans-serif;
text-align:center;
line-height:64px;
}
.popup {
position:fixed;
top:0px;
left:0px;
width:100%;
height:100%;
background:#000;
opacity: .0;
filter:alpha(opacity=0);
z-index:300;
display:none;
}
.opener {
float:left;
width:540px;
height:0;
border:1px solid #d8dbdf;
z-index:999;
position: relative;
overflow: hidden;
-webkit-transition: height 1s ease;
-moz-transition: height 1s ease;
-o-transition: height 1s ease;
transition: height 1s ease;
background-color: #ffffff;
}
.opener.height {
height: 200px;
}
.zindex {
z-index:9999;
position:relative;
}
.closer {
padding:15px;
float:right;
margin:0px;
position:absolute;
bottom:0px;
right:0px;
}
.closer a {
text-decoration:none;
color:#000;
font-weight:bold;
font-size:13px;
font-family:arial,sans-serif;
}
</style>
<script>
$(document)
.on('click','.button',function (event) {
event.preventDefault();
var opener = $(this).data('opener');
$('.popup').animate({'opacity':'.50'}, 300, 'linear');
$('.popup').css('display', 'block');
$('.openingdiv'+opener).addClass('height');
//$(this).toggleClass('zindex');
})
.on('click','.closediv a',function (event) {
event.preventDefault();
$('.popup').animate({'opacity':'.50'}, 500, 'linear');
$('.popup').css('display', 'none');
$(this).closest('.opener:visible').removeClass('height');
})
; // $(document)
</script>