jQuery如果一个元素可见,则关闭另一个元素

时间:2016-04-18 03:38:46

标签: javascript jquery

我想知道在另一个元素变得可见之后是否有隐藏元素的方法。这是我现在的jQuery代码

var fade = $("#listofeffects ul:nth-of-type(2)");
var firstchild = $("#listofeffects ul:first-child");

  firstchild.click(function(){
   $(".element1").fadeToggle();
    });

    fade.click(function(){
   $(".element2").fadeToggle();
    });

.element1 可见时, .element2 无法显示。我已经研究过使用if / else javascript语句,但是没有找到任何有用的东西。我也研究过使用:visible和:hidden,它们也没有用过。

感谢。

3 个答案:

答案 0 :(得分:4)

试试这个。 首先使用jQuery(this)

显示单击并在显示单击元素后隐藏所有元素

例如:

jQuery(document).ready(function(){
    var ulchild = jQuery("#listofeffects ul");
    ulchild.click(function(){
        jQuery("#listofeffects ul").hide("slow");
        jQuery(this).show(slow);
    });
});

答案 1 :(得分:0)

如果您的代码是这样的

<div class="div1 divClass"> Div 1 text </div>
<div class="div2 divClass"> Div 2 text </div>
<div class="div3 divClass"> Div 3 text </div>
<div class="div4 divClass"> Div 4 text </div>

执行此操作的Jquery代码。

$(".divClass").click(function(){
   $(this).siblings().addClass("hide");
});

此jquery代码将显示点击的元素和其他元素将自动隐藏...

答案 2 :(得分:0)

假设您的HTML有两个不同的<ul>附加 var firstchild = $("#listofeffects ul:first-child"); var fade = $("#listofeffects ul:nth-of-type(2)"); $('.element2').hide(); // initially show only .element1 $("#listofeffects").on('click','ul',function(e){ $('.element1,.element2').hide(); ( $(e.currentTarget).is(firstchild) ) ? $('.element1').fadeIn('slow') : $('.element2').fadeIn('slow') ; });

posts.show = function(req,res) {
  Post.find()
    .populate({
      "path": "answers",
      "populate": {
        "path": "comments",
        "model": "Comment"  
      }
    })
    .exec(function(err,result) {
        if (err) {
           console.log(err);
        } else {
           res.json(result)
        }
    });
}

see demo