2013-10-28 427 views
0

我正在编写一个小脚本来显示/隐藏div,当其他div被点击时,但我无法获得第二个可点击的div。点击显示/隐藏div

这里是我到目前为止的代码:

$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $(this).next('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

http://jsfiddle.net/65AK2/1/

每一个“按钮”点击带有描述的新的div应该出现在表的底部时间。 (底部的蓝色格)。如果另一个按钮被点击,则前面的描述应该关闭,另一个应该在同一个地方打开。 (尚未实现)

在此先感谢您的帮助!

+1

哪里是你的'#DIV ordontia2'直接去做在小提琴中? – ComFreek

+0

@ComFreek它在底部。 –

+0

@biip:你想每个按钮都有这个吗?那么你应该与你的'botaomedicina'类一起工作。看到我的答案。 – kelunik

回答

2

你为什么要与旁边的选择你的元素,如果它有一个唯一的ID?

$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

更一般的,如果你添加更多的div:

$(document).ready(function(){ 
    $('.botaomedicina').click(function(){ 
     $('#'+$(this).attr('id')+'2').slideToggle("slow"); 
    }); 
}); 

与所有其他关:

$(document).ready(function(){ 
    $('.botaomedicina').click(function(){ 
     $('.botaomedicinadescription').slideUp("slow"); 
     $('#'+$(this).attr('id')+'2').slideToggle("slow"); 
    }); 
}); 
+0

谢谢,第二个几乎就是我想要的!我只需要确保div在新文件打开之前关闭。也许这样? $('。descricaomedicina')。slideToggle(0);函数的第一行之前()? – biip

+0

是的,该函数被称为'.slideUp',查看更新的答案。 – kelunik

2

不要使用$.next,只选择当前元素的兄弟姐妹:

获取紧随其后的每个元素的兄弟在一套 匹配的元素。如果提供了选择器,则只有在匹配该选择器时才会检索下一个 兄弟。
jQuery documentation: .next()

正常使用的一个:

$('div#ordontia2').slideToggle("slow"); 
1
$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

删除this;)

2

固定它。

http://jsfiddle.net/65AK2/2/ 

首先,它看起来像你的切换div是畸形的。我没有看到它的

其次,如果你知道其他分区的ID是什么,你不需要说:

$(this).next("#item"); 

,这将毫无意义。

1

试试这个

$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

更新小提琴http://jsfiddle.net/65AK2/4/

0

您可以通过ID选择

http://jsfiddle.net/65AK2/3/

$(document).ready(function(){ 
    $('#ordontia').click(function(){ 
     $('#ordontia2').slideToggle("slow"); 
    }); 
});