Jquery - 单击时将隐藏的 div 堆叠在彼此之上
因此,当单击隐藏的 div 上的选项卡向下滑动时,我希望发生什么,但无论单击哪个选项卡,它总是会在前一个选项卡的顶部打开。现在,它们按照 HTML 中的顺序打开。这是 Jquery `
$(document).ready(function ($) {
$('.menu-bio').bind('click', function (event) {
if ($('#bio').is(':visible')) {
$('#bio').slideUp();
$('.menu-bio').removeClass('open');
} else {
if ($('#media').is(':visible')) {
$('#media').slideDown(function () {
$('#bio').slideDown();
if($('.dropmenu').first().attr('id') != 'bio') $('#bio').insertBefore($('.dropmenu')[0]);
});
}
if ($('#dates').is(':visible')) {
$('#dates').slideDown(function () {
$('#bio').slideDown();
if($('.dropmenu').first().attr('id') != 'bio') $('#bio').insertBefore($('.dropmenu')[0]);
});
}
if ($('#contacts').is(':visible')) {
$('#contacts').slideDown(function () {
$('#bio').slideDown();
if($('.dropmenu').first().attr('id') != 'bio') $('#bio').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#bio').slideDown();
}
$('.menu-bio').addClass('open');
}
return false;
});
$('.menu-media').bind('click', function (event) {
if ($('#media').is(':visible')) {
$('#media').slideUp();
$('.menu-media').removeClass('open');
} else {
if ($('#bio').is(':visible')) {
$('#bio').slideDown(function () {
$('#media').slideDown();
if($('.dropmenu').first().attr('id') != 'media') $('#media').insertBefore($('.dropmenu')[0]);
});
}
if ($('#dates').is(':visible')) {
$('#dates').slideDown(function () {
$('#media').slideDown();
if($('.dropmenu').first().attr('id') != 'media') $('#media').insertBefore($('.dropmenu')[0]);
});
}
if ($('#contacts').is(':visible')) {
$('#contacts').slideDown(function () {
$('#media').slideDown();
if($('.dropmenu').first().attr('id') != 'media') $('#media').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#media').slideDown();
}
$('.menu-media').addClass('open');
}
return false;
});
$('.menu-dates').bind('click', function (event) {
if ($('#dates').is(':visible')) {
$('#dates').slideUp();
$('.menu-dates').removeClass('open');
} else {
if ($('#bio').is(':visible')) {
$('#bio').slideDown(function () {
$('#dates').slideDown();
if($('.dropmenu').first().attr('id') != 'dates') $('#dates').insertBefore($('.dropmenu')[0]);
});
}
if ($('#media').is(':visible')) {
$('#media').slideDown(function () {
$('#dates').slideDown();
if($('.dropmenu').first().attr('id') != 'dates') $('#dates').insertBefore($('.dropmenu')[0]);
});
}
if ($('#contacts').is(':visible')) {
$('#contacts').slideDown(function () {
$('#dates').slideDown();
if($('.dropmenu').first().attr('id') != 'dates') $('#dates').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#dates').slideDown();
}
$('.menu-dates').addClass('open');
}
return false;
});
$('.menu-contacts').bind('click', function (event) {
if ($('#contacts').is(':visible')) {
$('#contacts').slideUp();
$('.menu-contacts').removeClass('open');
} else {
if ($('#media').is(':visible')) {
$('#media').slideDown(function () {
$('#contacts').slideDown();
if($('.dropmenu').first().attr('id') != 'contacts') $('#contacts').insertBefore($('.dropmenu')[0]);
});
}
if ($('#dates').is(':visible')) {
$('#dates').slideDown(function () {
$('#contacts').slideDown();
if($('.dropmenu').first().attr('id') != 'contacts') $('#contacts').insertBefore($('.dropmenu')[0]);
});
}
if ($('#bio').is(':visible')) {
$('#bio').slideDown(function () {
$('#contacts').slideDown();
if($('.dropmenu').first().attr('id') != 'contacts') $('#contacts').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#contacts').slideDown();
}
$('.menu-contacts').addClass('open');
}
return false;
});
$('.openbox').bind('click', function (event) {
if ($(this).parent().hasClass('open')) {
$(this).next('ul').slidedDown('fast');
$(this).parent().removeClass('open');
} else {
$(this).next('ul').slideUp('fast');
$(this).parent().addClass('open');
}
return false;
});
});
如果有人可以帮助我,我将不胜感激,谢谢
So what I would like to happen when the tabs are clicked on the hidden divs slide down but no matter which one is clicked it will always open on top of the previous. Right now they open in the order they're in, in the HTML. Here is the Jquery `
$(document).ready(function ($) {
$('.menu-bio').bind('click', function (event) {
if ($('#bio').is(':visible')) {
$('#bio').slideUp();
$('.menu-bio').removeClass('open');
} else {
if ($('#media').is(':visible')) {
$('#media').slideDown(function () {
$('#bio').slideDown();
if($('.dropmenu').first().attr('id') != 'bio') $('#bio').insertBefore($('.dropmenu')[0]);
});
}
if ($('#dates').is(':visible')) {
$('#dates').slideDown(function () {
$('#bio').slideDown();
if($('.dropmenu').first().attr('id') != 'bio') $('#bio').insertBefore($('.dropmenu')[0]);
});
}
if ($('#contacts').is(':visible')) {
$('#contacts').slideDown(function () {
$('#bio').slideDown();
if($('.dropmenu').first().attr('id') != 'bio') $('#bio').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#bio').slideDown();
}
$('.menu-bio').addClass('open');
}
return false;
});
$('.menu-media').bind('click', function (event) {
if ($('#media').is(':visible')) {
$('#media').slideUp();
$('.menu-media').removeClass('open');
} else {
if ($('#bio').is(':visible')) {
$('#bio').slideDown(function () {
$('#media').slideDown();
if($('.dropmenu').first().attr('id') != 'media') $('#media').insertBefore($('.dropmenu')[0]);
});
}
if ($('#dates').is(':visible')) {
$('#dates').slideDown(function () {
$('#media').slideDown();
if($('.dropmenu').first().attr('id') != 'media') $('#media').insertBefore($('.dropmenu')[0]);
});
}
if ($('#contacts').is(':visible')) {
$('#contacts').slideDown(function () {
$('#media').slideDown();
if($('.dropmenu').first().attr('id') != 'media') $('#media').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#media').slideDown();
}
$('.menu-media').addClass('open');
}
return false;
});
$('.menu-dates').bind('click', function (event) {
if ($('#dates').is(':visible')) {
$('#dates').slideUp();
$('.menu-dates').removeClass('open');
} else {
if ($('#bio').is(':visible')) {
$('#bio').slideDown(function () {
$('#dates').slideDown();
if($('.dropmenu').first().attr('id') != 'dates') $('#dates').insertBefore($('.dropmenu')[0]);
});
}
if ($('#media').is(':visible')) {
$('#media').slideDown(function () {
$('#dates').slideDown();
if($('.dropmenu').first().attr('id') != 'dates') $('#dates').insertBefore($('.dropmenu')[0]);
});
}
if ($('#contacts').is(':visible')) {
$('#contacts').slideDown(function () {
$('#dates').slideDown();
if($('.dropmenu').first().attr('id') != 'dates') $('#dates').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#dates').slideDown();
}
$('.menu-dates').addClass('open');
}
return false;
});
$('.menu-contacts').bind('click', function (event) {
if ($('#contacts').is(':visible')) {
$('#contacts').slideUp();
$('.menu-contacts').removeClass('open');
} else {
if ($('#media').is(':visible')) {
$('#media').slideDown(function () {
$('#contacts').slideDown();
if($('.dropmenu').first().attr('id') != 'contacts') $('#contacts').insertBefore($('.dropmenu')[0]);
});
}
if ($('#dates').is(':visible')) {
$('#dates').slideDown(function () {
$('#contacts').slideDown();
if($('.dropmenu').first().attr('id') != 'contacts') $('#contacts').insertBefore($('.dropmenu')[0]);
});
}
if ($('#bio').is(':visible')) {
$('#bio').slideDown(function () {
$('#contacts').slideDown();
if($('.dropmenu').first().attr('id') != 'contacts') $('#contacts').insertBefore($('.dropmenu')[0]);
});
}
else {
$('#contacts').slideDown();
}
$('.menu-contacts').addClass('open');
}
return false;
});
$('.openbox').bind('click', function (event) {
if ($(this).parent().hasClass('open')) {
$(this).next('ul').slidedDown('fast');
$(this).parent().removeClass('open');
} else {
$(this).next('ul').slideUp('fast');
$(this).parent().addClass('open');
}
return false;
});
});
If anyone can help me it would be greatly appreciated, Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这行代码的作用是在其他元素之前插入您定义的
#bio
、#media
或#dates
元素。只需编辑下面的行即可。This lines of code do the trick of inserting the element you define
#bio
,#media
or#dates
before the other elements. Just have to edit the line below.使用 insertAfter 在向下滑动之前将容器插入到包装器之后:
Use insertAfter to insert the container after the wrapper before slide down: