在显示下一个之前隐藏第一个div

时间:2014-11-30 22:17:07

标签: javascript jquery html

当点击地图上的图标时,我有四个隐藏的div通过jquery显示。显示div显示每个位置的详细信息。我希望每次单击不同的位置时都清除该显示,以便一次只显示一组详细信息。现在,每当我点击一个图标时,它就会添加到列表中,而不是清除当前的图标。

HTML:

<div id="1" class="toggle" style="display:none">test text 1</div>
<div id="2" class="toggle" style="display:none">test text 2</div>
<div id="3" class="toggle" style="display:none">test text 3</div>
<div id="4" class="toggle" style="display:none">test text 4</div>

JS:

var drawCircle = function (context, x, y, fillcolor, radius, linewidth, strokestyle, fontcolor, textalign, fonttype, filltext, div, circles) {
    draw(context, x, y, fillcolor, radius, linewidth, strokestyle, fontcolor, textalign, fonttype, filltext);
    var circle = new Circle(x, y, radius);
    circles.push(circle);  
};

drawCircle(context, 300, canvas.height / 2, "green", 40, 5, "#003300", "white", "center", "bold 32px Arial", "1", "#2", circles);
drawCircle(context, 600, canvas.height / 3, "blue", 50, 5, "#003300", "white", "center", "bold 32px Arial", "2", "#3", circles);

$('#mapCanvas').click(function (e) {
    var clickedX = e.pageX - this.offsetLeft;
    var clickedY = e.pageY - this.offsetTop;

    for (var i = 0; i < circles.length; i++) {
        if (clickedX < circles[i].right && clickedX > circles[i].left && clickedY > circles[i].top && clickedY < circles[i].bottom) {

            $('#'+(i+1)).show();


        }
    }

1 个答案:

答案 0 :(得分:0)

我明白了!只需在代码前面显示div:

$(".toggle").hide();