单击Jquery查找并隐藏当前div

时间:2015-04-08 15:02:03

标签: jquery

我需要一些帮助,为我的网站beemo-demo.squarespace.com创建一些jQuery。我正在从冒险时间建造Beemo进行练习。我试图让他有多个面孔,当你点击一个按钮(如红色按钮)时,它会隐藏当前面部并显示附在该按钮上的面部。

我目前有以下jQuery用于显示id =" face-not-amused"当点击红色按钮时,当前面部id ="面部正常"不隐藏。

$(document).ready(function() {
  $("#circle-red").on('click', function(e){
           $("#face-not-amused").toggle();
         });
     });

我想我需要使用.find()' visible'对于id =" face-wrapper"要查找当前活动的div,然后使用.hide()在单击按钮时隐藏该div。我不知道如何解决这个问题,我正在寻求帮助。我最终会有多张脸,因为现在我只有两张脸。

3 个答案:

答案 0 :(得分:1)

你的想法是正确的。

使用

$("#face-wrapper").find("div:visible").hide();

请务必在切换$(“#face-not-amused”);

之前放置它

答案 1 :(得分:1)

您可以保持关联的面部和按钮之间的关系,例如同一类或类似的id。然后处理click事件。如果将来添加新按钮,则只需添加此关系,但点击功能可以保持不变。

所以,如果你有像

这样的div
<div class='face one'>face one</div>

按钮如

<button id='one' class='btnFace one'>One</button>

您可以将点击事件写为

$('button').click(function(){
var clickedId = $(this).attr('id');
    $('.face').hide();
    $('div.'+clickedId).show();
});

请参阅此示例fiddle

答案 2 :(得分:0)

CSS

#face-normal { display: block; }
#face-not-amused { display: none; }
.amused #face-normal { display: none; }
.amused #face-not-amused { display: block; }

JS

$(document).ready(function() {
    $("#circle-red").on('click', function(e){
        $("#face-not-amused").parent().toggleClass('amused');
    });
});