哪个div目前有效?

时间:2013-09-14 03:52:22

标签: javascript jquery

我有一系列div(显示图形)。单击一个图形div,然后用div写入。

$("#graphic1").click(function(){  
   $("#text").html("Something important goes here.") 
}

但是,如果用户在显示graphic8时单击了graphic1,我希望它能够执行其他操作

if (graphic8 was active before graphic1 was clicked){
   do this
} else {
   do that
}

进一步解释

  1. 有很多div。
  2. 这些div中的任何一个可能同时处于活动状态。
  3. 在选择新div时,我想知道在选择新div之前哪个div处于活动状态。
  4. 编辑9/14以回答答案

    以下是jsfiddle的一个简单示例:http://jsfiddle.net/MAYO/2DEnY/2/

    我希望div为 切换 2.选择新div时,下面显示说明。我试过并且没有做if / else子句的组合。 3.完成这一点后(我认为解决这个问题会解决下一个问题)我希望文本描述能够根据之前活动的div而有所不同。

2 个答案:

答案 0 :(得分:2)

为任何已点击的项目添加一个类,并为每个新单击选择该类,从该元素中读取您想要的任何内容,删除该类,然后将其再次添加到新项目中。

小提琴演示:

http://jsfiddle.net/dPwkE/

<强> jQuery的:

 $(function(){
    $('a').click(function(){
        if($('a.active')[0]){
           $('a.active').removeClass("active");
           $(this).addClass("active");
        }else{
            $(this).addClass("active");
        }
    });
});

在阅读完编辑后,据我所知,您可以使用数据属性为每个div存储一些内容,然后在按下后显示它。

或许有些人会这么说吗? http://jsfiddle.net/2DEnY/4/

答案 1 :(得分:1)

假设你的html结构看起来像

<div id="graphic1" class="graphic">
</div>
<div id="graphic2" class="graphic">
</div>
<div id="graphic3" class="graphic">
</div>
...

你的js代码就像

$(".graphic").click(function(){  
   var $before = $(".graphic.active"); //previously active div, do what ever you want,
                                       //remember to check whether $before is null or equals to 
                                       //$(this)
   $before.removeClass("active");
   $(this).addClass("active");

   $("#text").html("Something important goes here.") 
});