JQuery.slideToggle()
我在JQuery中使用slideToggle()来显示一个div。 但这不起作用 我做了不同的测试,但没有任何效果 我有这个:JQuery.slideToggle(),jquery,html,slidetoggle,Jquery,Html,Slidetoggle,我在JQuery中使用slideToggle()来显示一个div。 但这不起作用 我做了不同的测试,但没有任何效果 我有这个: <div class="domaine"> <a>1. Compétences Scientifiques Transversales</a> <br> <div class="ssdomaine" style="display: none;"> <a>1.1. Sciences et te
<div class="domaine">
<a>1. Compétences Scientifiques Transversales</a>
<br>
<div class="ssdomaine" style="display: none;">
<a>1.1. Sciences et techniques</a>
<br>
<div class="competence" style="display: none;">
<a href="#">1.1.1. Génie thermique et thermodynamique</a>
<br>
</div>
</div>
这里只有一个“领域”包含一个“领域”包含一个“能力”
但我在一个数据库中发出请求,该数据库可以向我发送多个“域”,其中包含多个“ssdomaine”,其中包含多个“ssdomaine”
我想在不指定任何id的情况下创建一个.slideToggle()
我的JQuery代码是:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('.ssdomaine').hide();
$('.competence').hide();
$('.domaine a').click(function() {
$(this).next('.ssdomaine').slideToggle(1000);
return false;
});
$('.ssdomaine a').click(function() {
$(this).next('.competence').slideToggle(1000);
return false;
});
});
</script>
$(文档).ready(函数(){
$('.ssdomaine').hide();
$('.competency').hide();
$('.domaine a')。单击(函数(){
$(this).next('.ssdomaine').slideToggle(1000);
返回false;
});
$('.ssdomaine a')。单击(函数(){
$(this.next(“.competency”).slideToggle(1000);
返回false;
});
});
我在这个链接中也尝试了同样的方法:
它正在发挥作用,但它只出现在一个领域,一个领域和能力
有什么想法吗?这和
高度有关,看看这把小提琴
更新
它不显示能力
的原因是,当您加载表单时,它是隐藏的,并且当您在ssdomaine
上执行slideToggle
时,它只会使ssdomaine
可见,而不会显示能力
更新
这应该可以做到。下一步
只查看直接同级,添加选择器只检查该元素是否与选择器匹配,。下一步('.selector')
是可行的,但将返回元素的集合,因此您可能希望使用.first()
限制集合
jQuery的slideToggle()充其量只是一个bug。幸运的是,HTML5中有一个新特性,可以在不使用JavaScript的情况下提供此功能
查看新的HTML5标签:
这是正常的,我不想让别人看到我的能力。抱歉,如果我没有解释清楚,当我单击时,没有显示任何内容。我希望ssdomaine出现,如果我点击ssdomaine,我希望Competency出现。谢谢,它部分解决了我的问题。这是我想要的,但有个例外。当我点击一个域时,我只想在域中显示ssdomain include。在这里,如果我有多个域名,我点击一个域名,每个域名都会出现在ssdomain上。还有什么想法吗?嗯,这几乎是完美的。这对ssdomaine很好,但当我选择一个ssdomaine时,同一个ssdomaine的每个ssdomaine都会显示它们的能力。例如:“域名1域名2”我选择域名1:“域名1域名1域名2域名2”我选择域名2:“域名1域名1竞争力1竞争力2域名2竞争力2.1竞争力2.2域名2”在这个例子中,我不想出现竞争力2.1和竞争力2.2。谢谢!(“Enters”未添加在此评论中对不起,您是否理解该示例?)!我从两个答案中选择了一点,结果是:它在做我想做的事情。再次感谢您抽出时间。基鲁奇
$(document).ready(function() {
$('.ssdomaine').hide();
$('.competence').hide();
$('.domaine a').click(function() {
// next only looks at the immediate sibling, which in you code is a <br />
//$(this).next('.ssdomaine').slideToggle(1000);
// this would open all elements
$(this).nextAll('.ssdomaine').slideToggle(1000);
// this would open this first instance of .ssdomaine
$(this).nextAll('.ssdomaine').first().slideToggle(1000);
return false;
});
$('.ssdomaine a').click(function() {
$(this).next('.competence').slideToggle(1000);
return false;
});
});