0

リンクを非表示/表示するためのこのコードは、cBoxoverlay の状態に依存します。しかし、クリックしてこのアイテムを閉じ( display:none)、もう一度クリックして表示すると( display:block)、リンク( #close-news)がまだ表示されません。

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");

どこで間違えましたか?

4

5 に答える 5

1

これを試してください - if ステートメントは必要ありません。#close-newsを何にでも#cBoxOverLay設定できます

$(document).click(function () {        
    $("#close-news").css("display", $("#cBoxOverlay").css('display'));
}
于 2012-07-25T16:34:49.350 に答える
0

@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');});
});
于 2012-07-25T16:33:00.793 に答える
0

is( ":visible")を使用して要素が表示されているかどうかを確認してから、表示または非表示にします。

jQuery(document).click(function () {
    if (jQuery("#cBoxOverlay").is(":visible")) {
        jQuery("#close-news").hide();
    } else {
        jQuery("#close-news").show();
    }
});
于 2012-07-25T16:33:29.773 に答える
0

あなたが試すことができます:

if ($("#cBoxOverlay").css("display") == "none") {
  // ...
}

ただし、メソッドを使用できますis

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

 $(document).click(function(){
   if ($("#cBoxOverlay").is(":hidden")) { // if #cBoxOverlay is hidden
       $("#close-news").hide() // hide the #close-news
    } else if ($("#cBoxOverlay").is(":visible")) { // if #cBoxOverlay is visible
       $("#close-news").show() // // show the #close-news
    }
 })       

elseもちろん、要素が非表示になっていない場合は、2番目の条件を削除して代わりに使用できます。

于 2012-07-25T16:29:31.567 に答える
0

クラスを使用して、よりクリーンな仕事をします。

クラスを使用したくない場合は、jQuery のトグルを使用してみてください。これは、基本的に達成しようとしているものとまったく同じです: http://api.jquery.com/toggle/

于 2012-07-25T16:30:37.923 に答える