Jquery 隐藏变量==true时可见的元素
能帮我点忙吗 当我点击Jquery 隐藏变量==true时可见的元素,jquery,conditional-statements,Jquery,Conditional Statements,能帮我点忙吗 当我点击.toggle menu时,我没有隐藏#overlay menu或#overlay contact,如果它们是:可见的和ovDeskVisible==false if (ovDeskVisible == false && ovMenuVisible) { $('#overlay-menu').hide(); setTimeout(function() { $('#overlay-
.toggle menu
时,我没有隐藏#overlay menu
或#overlay contact
,如果它们是:可见的和ovDeskVisible==false
if (ovDeskVisible == false && ovMenuVisible) {
$('#overlay-menu').hide();
setTimeout(function() {
$('#overlay-menu').removeClass('appears');
}, 300 );
}
if (ovDeskVisible == false && ovContactVisible) {
$('#overlay-contact').hide();
setTimeout(function() {
$('#overlay-contact').removeClass('appears');
}, 300 );
}
以下是我的职能:
function toggle_nav_desktop() {
var ovDeskVisible = false;
var ovMenuVisible = $('#overlay-menu').is(':visible');
var ovContactVisible = $('#overlay-contact').is(':visible');
$('.toggle-menu, .toggle-contact').click(function(e) {
e.preventDefault();
ovDeskVisible = !ovDeskVisible;
if ($('html').attr('lang') == 'fr-FR') {
$('.toggle-menu h4').text($('.toggle-menu h4').text() == 'Menu' ? 'Fermer' : 'Menu');
} else {
$('.toggle-menu h4').text($('.toggle-menu h4').text() == 'Menu' ? 'Close' : 'Menu');
}
if (ovDeskVisible == true) {
$('.icon-menu').addClass('is-opened').removeClass('is-closed');
$('html').addClass('stop-scrolling');
$('.circle').addClass('open appears');
}
if (ovDeskVisible == false) {
$('.icon-menu').addClass('is-closed').removeClass('is-opened');
$('html').removeClass('stop-scrolling');
$('.circle').removeClass('open appears');
}
});
$('.toggle-menu').click(function(e) {
e.preventDefault();
if (ovDeskVisible == true) {
$('#overlay-menu').show();
setTimeout(function() {
$('#overlay-menu').addClass('appears');
}, 300 );
}
if (ovDeskVisible == false && ovMenuVisible) {
$('#overlay-menu').hide();
setTimeout(function() {
$('#overlay-menu').removeClass('appears');
}, 300 );
}
if (ovDeskVisible == false && ovContactVisible) {
$('#overlay-contact').hide();
setTimeout(function() {
$('#overlay-contact').removeClass('appears');
}, 300 );
}
});
$('.toggle-contact').click(function(e) {
e.preventDefault();
if (ovDeskVisible == true) {
$('#overlay-contact').show();
setTimeout(function() {
$('#overlay-contact').addClass('appears');
}, 300 );
}
});
}
当我点击.toggle menu
时,如何隐藏#overlay menu
或#overlay contact
如果它们是:可见的和ovDeskVisible==false
?不确定这是否有帮助,但尝试将您的点击事件从$('.toggle contact')更改。点击(函数(e){
到$('.toggle contact')。打开('click',函数(e){}
。
这样做了一次,解决了我的问题。值得一试。我显然看不到您的其余代码,但您的脚本似乎应该可以工作。您正在初始化文档上的切换导航桌面()
如果没有,请尝试添加以下内容:
$(document).ready(function() {
toggle_nav_desktop();
});
如果这没有帮助,你能用你的HTML和所有东西创建一个链接,并共享链接吗
另外,通过使用not(!
)运算符和else
语句,您可以显著简化语句:
if (ovDeskVisible) {
//ovDeskVisible == true
}
else {
//ovDeskVisible == false
}
if (!ovDeskVisible && ovMenuVisible) {
//ovDeskVisible == false
//ovMenuVisible == true
}
else {
//ovDeskVisible == true
//ovMenuVisible == false
}
看起来您必须更清楚地定义您的问题,您想要的是什么,以及什么不符合预期。您是否要求使用更好的模块化方式来组织代码?请在最后提供一个明确的问题,如“是否有方法…”或“我如何做…”。编辑您的问题并将该信息放在列表中这是问题的一部分。另外,请尝试console.log输出该变量的值,查看您得到的信息,并将其作为附加信息发布。如果未捕获或使用该变量的值,请在问题中提及您想知道的原因。这些是等效的。唯一的区别是(.on>)
允许您使用.off()