我想检查#kndpopup
和#guildinfo
元素是否已切换,然后点击#knd
后我希望它们都回到未被遮挡状态。
目前,如果我点击#knd
#kndpopup
切换,那么当我再次点击#knd
时,#kndpopup
会按预期变为无效。但是,当我切换#kndpopup
然后切换#guildinfo
时,这是一个位于#kndpopup
上的相同弹出窗口以隐藏它(就像另一个包含信息的页面),我无法解开#kndpopup
和#guildinfo
都带有#knd
按钮,它只是在它们之间切换而不是关闭它们。我怎样才能解决这个问题?我在CSS中将这两个元素设置为display: none
。
JavaScript的:
$("#knd").click(function() {
$("#kndpopup").fadeToggle();
});
$(".info").click(function() {
$("#kndpopup").fadeToggle();
$("#guildinfo").fadeToggle();
});
已编辑代码:
$("#knd").click(function() {
$("#kndpopup").fadeToggle();
if($('#guildinfo').is(':visible')){
$("#guildinfo").fadeToggle();
}
这种分类有效,但当#guildinfo
切换并点击#knd
时,当我点击#kndpopup
时,它会切换回#knd
,我该如何修复此问题?
3RD ATTEMPT:
$("#knd").click(function() {
$("#kndpopup").fadeToggle();
if($("#guildinfo").is(':visible')){
$("#guildinfo").fadeToggle();
}
else if($("#kndpopup").is(":hidden") && ("#guildinfo").is(":visible")) {
return;
}
});
它仍然没有按照我想要的方式工作,请帮助。
答案 0 :(得分:0)
您可以使用此if语句来更改切换的行为。
if($('#kndpopup').is(':visible')){
//This will run if the element is visible
}
答案 1 :(得分:0)
这个答案可以解决问题:
$("#knd").click(function () {
var KND = $("#kndpopup");
var GUILDINFO = $("#guildinfo");
if ((KND).is(':visible')) {
$(KND).fadeOut();
}
else if ((GUILDINFO).is(':visible')) {
$(GUILDINFO).fadeOut();
$(KND).fadeOut();
}
else {
$(KND).fadeIn();
}
});
$(".info").click(function () {
$("#kndpopup").fadeToggle();
$("#guildinfo").fadeToggle();
});