Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery.slideToggle()_Jquery_Html_Slidetoggle - Fatal编程技术网

JQuery.slideToggle()

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

我在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 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;
    });
 });