简单的jQuery列表切换

时间:2016-05-20 19:18:44

标签: javascript jquery

当我点击一个问题时,它会滑动打开,但是如果我再点击它就会如此可见呢?如果可见的话,它会隐藏它?

谢谢! 乔恩



$('.faqDisplay dt').click(function() {
  var item = $($(this).parent()).children('dd');
  if (item.css('display', 'none')) {
    item.slideDown();
  } else {
    item.slideUp();
  }
});

.faqDisplay dd {
  display: none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div class="faqDisplay">

  <dl>
    <dt>Question One</dt>
    <dd>
      <p>Answer One</p>
    </dd>
  </dl>

  <dl>
    <dt>Question Two</dt>
    <dd>
      <p>Answer Two</p>
    </dd>
  </dl>

</div>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:3)

您可以使用slideToggle() DEMO

$('dt').click(function() {
  $(this).next('dd').slideToggle();
})

答案 1 :(得分:0)

尝试更改此if(item.css('display','none')) { 这个if(!item.is(':visible')) {

答案 2 :(得分:0)

clc;
clear;
Current_Path=pwd;
cd (Current_Path)
mkdir('Photos','part1')
pridir = 'Photos\part';
R=rand(1,50);
Y=rand(1,50);
for i=1:50
    figure
    for jj = 1:floor((i-1)/10)+1
        if jj<=1
            plot (R(i),Y(i),'*r');
            printto = sprintf('%s%d\\Motion%03d',pridir,1,i);
            print('-djpeg90',printto)
            close(gcf);
            hold on
        else
            R(i)=R(i-((jj-1)*10));
            Y(i)=Y(i-((jj-1)*10));
            plot (R(i),Y(i),'*r');
            printto = sprintf('%s%d\\Motion%03d',pridir,1,i);
            print('-djpeg90',printto)
            close(gcf);
            hold on
        end
    end
    hold off
end
$('.faqDisplay dt').click(function(){
  var item = $($(this).parent()).children('dd');
  if(!item.is(':visible')) {
		item.slideToggle();
  }
  else {
    item.slideToggle();
  }
});
.faqDisplay dd {
  display: none;
  }

答案 3 :(得分:0)

注意:至少从jQuery 1.7开始,这个版本的.toggle已被弃用,可能正是出于这个原因,即存在两个版本。使用.toggle更改元素的可见性只是一种更常见的用法。该方法已在jQuery 1.9中删除。

function a(el){
   el.slideDown();; 
}
function b(el){
  el.slideUp();
}

$('.faqDisplay dt').click(function() {
  var el = this;
  return (el.t = !el.t) ? a(el) : b(el);
});