使用javascript链接样式

使用javascript链接样式,javascript,jquery,Javascript,Jquery,我有这个代码隐藏\显示链接取决于cBoxoverlay的状态。但是当我单击关闭此项目(显示:无),然后再次单击以显示它(显示:阻止)时,我的链接(#关闭新闻)仍然没有显示 jQuery(document).click(function () { if (jQuery("#cBoxOverlay").css("display", "none")) { jQuery("#close-news").css("display", "none"); } else if (jQuery("#

我有这个代码隐藏\显示链接取决于cBoxoverlay的状态。但是当我单击关闭此项目(
显示:无
),然后再次单击以显示它(
显示:阻止
)时,我的链接(
#关闭新闻
)仍然没有显示

jQuery(document).click(function () {
  if (jQuery("#cBoxOverlay").css("display", "none")) {
    jQuery("#close-news").css("display", "none");
  } else if (jQuery("#cBoxOverlay").css("display", "block")) {
    jQuery("#close-news").css("display", "block");
我哪里出错了?

您可以试试:

if ($("#cBoxOverlay").css("display") == "none") {
  // ...
}
但是,您可以使用
is
方法:

if ( $("#cBoxOverlay").is(':hidden')) {
       // ...
}


您可以删除第二个条件,并使用
else
,当元素未隐藏时,它当然是可见的

使用类,做更干净的工作


如果您不想使用类,请尝试使用jQuery的切换,这基本上正是您想要实现的:

根据@Raminson的回答,尝试以下操作:

$(document).click(function () {
  if ($("#cBoxOverlay").is(':hidden')) {
    $("#close-news").css("display", "none");
  } else{
    $("#close-news").css("display", "block");
也可以试试这一款:

$(document).click(function(){
$('#close-news').css('display', function(){return $('#cBoxOverlay').css('display');});
});
使用is(“:visible”)检查元素是否可见,然后显示或隐藏

jQuery(document).click(function () {
    if (jQuery("#cBoxOverlay").is(":visible")) {
        jQuery("#close-news").hide();
    } else {
        jQuery("#close-news").show();
    }
});

试试这个-不需要if语句。您只需将
#close news
设置为
#cBoxOverLay
的任意值即可

$(document).click(function () {        
    $("#close-news").css("display", $("#cBoxOverlay").css('display'));
}

在我看来,您不是在检查if语句中的条件,而是将显示属性设置为“无”和“块”。。这可能是问题吗?不知道,我对JS完全陌生,但必须尽快让它工作,@Raminson的答案很好。下面发布的所有内容都不适合我。你使用的是哪个版本的JQuery?@Avdept是的,检查更新的答案,你可以使用
show()
hide())
与css相同
显示:块和无。
为什么说
是:隐藏的,其他是:可见的
<代码>是:隐藏的其他就足够了:)@Archer是的,重点是澄清
:可见的
:隐藏的
选择器是如何工作的:)。@Raminson-谢谢,我理解。我只是澄清他不需要两个:)最后一个确实对我有用,但在第二次点击之后。我点击图像弹出我的lightbox,然后再点击一次显示(#关闭新闻),关闭我的lightbox窗口时也是如此
$(document).click(function () {        
    $("#close-news").css("display", $("#cBoxOverlay").css('display'));
}