如果Div已经被选中或打开,如何停止滑动效果
How to stop Slide effect if the Div is already selected or opened
我试图使用jquery的toggle()
方法创建一个单一的Paee网站。我有4个标题Parent1
'Parent2' &Parent3
。都有子div
我想只显示Child1
div,并隐藏所有其他div,如果parent1
被选中或单击。我写了下面的代码,它不能正常工作,但当我点击parent
div第二次隐藏元素,如果我再次点击它,它显示元素。
请告诉我如何解决这个问题。
<body>
<div class="parents">
<div id="parent1"> <h1>First</h1></div>
<div id="parent2"> <h1>Second</h1></div>
<div id="parent3"> <h1>Third</h1></div>
</div>
<br />
<br />
<div class="childs">
<div id="child1"> <h3>First</h3></div>
<div id="child2"> <h3>Second</h3></div>
<div id="child3"> <h3>Third</h3></div>
</div>
</body>
Jquery $(document).ready(function(e) {
$("#child2").hide();
$("#child3").hide();
$("#parent1").click(function(){
$("#child2").hide();
$("#child3").hide();
$("#child1").toggle('left');
return false;
});
if ($("#child2").hide())
{
$("#parent2").click(function(){
$("#child1").hide();
$("#child3").hide();
$("#child2").toggle('left');
return false;
});
}
$("#parent3").click(function(){
$("#child2").hide();
$("#child1").hide();
$("#child3").toggle('left');
return false;
});
});
可以使用HTML属性data-target=""
Demo
html<div class="parents">
<div id="parent1" data-target="#child1">
<h1>First</h1>
</div>
<div id="parent2" data-target="#child2">
<h1>Second</h1>
</div>
<div id="parent3" data-target="#child3">
<h1>Third</h1>
</div>
</div>
<br />
<br />
<div class="childs">
<div id="child1">
<h3>First</h3>
</div>
<div id="child2">
<h3>Second</h3>
</div>
<div id="child3">
<h3>Third</h3>
</div>
</div>
css .hidden {
display: none;
}
jquery $(document).ready(function () {
$('.childs div').addClass('hidden');
function changeDiv() {
var target = $(this).data('target');
$('.childs div').addClass('hidden');
$(target).removeClass('hidden');
}
$('.parents div').click(changeDiv);
});
EDIT: jquery编辑使所有.childs div
初始隐藏
如果您再次单击已打开的位置,此代码将不执行任何操作。
,
var child = $('.childs >div').hide();
$('.parents > div').click(function () {
var targetDiv = child.eq($(this).index());
if (targetDiv.is(':visible')) { return false; }
targetDiv.siblings().hide().end().toggle('left');
});
演示您可以简单地使用:
$('.parents div').click(function(){
$('.childs div').not(':eq('+$(this).index()+')').hide();
$('#child'+($(this).index()+1)).toggle();
});
演示工作如果你不想切换,直接显示:
$('.parents div').click(function(){
$('.childs div').not(':eq('+$(this).index()+')').hide();
$('#child'+($(this).index()+1)).show();
});
演示工作您可以像这样缩短代码并使用if条件来检查ele是否被隐藏:
$('.parents div').click(function () {
var idx = $(this).index() + 1;
if(!$('#child' + idx).is(':visible'))
$('#child' + idx).hide().slideDown().siblings().hide();
});
演示Demo
试试这个。选择元素index
,在此基础上你可以切换元素
$(".parents").click(function (e) {
$(".childs").children().hide().eq($("H1").index(this)).toggle("left");
});
使用.show()
方法代替.toggle()
,它将始终是静态的。
相关文章:
- jQuery UI自动完成突然停止工作
- 单击F5时如何停止页面加载
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 如何在未直接触发的情况下停止事件
- 播放当前视频时如何停止其他视频?JavaScript
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 停止jQuery UI滑块移动超过给定值
- JavaScript/jQuery:显示DIV,直到用户停止在Textbox中键入
- 交叉淡入淡出 DIV + 悬停时停止动画
- Div 在页眉到达其顶部时开始滚动,当其底部到达页脚时停止滚动
- DIV 滚动到达页脚(另一个 DIV)后停止滚动
- 使用 Jquery 在页面刷新时停止 Div 滚动到顶部
- Div停止javascript函数
- 停止DIV并在位置添加类
- 如果Div已经被选中或打开,如何停止滑动效果
- 当显示绝对DIV时,停止显示页面顶部的窗口
- 当Div到达页面底部时停止移动
- Div不会停止使用Page滚动
- 在继续到另一个页面之前,等待DIV停止移动