1

我有这个 JavaScript 代码可以使手风琴菜单起作用,它可以工作,有点...当我单击链接时,它确实按应有的方式下降,但是当我再次单击它时,它又恢复了,然后又下降了,而不是像我想的那样隐藏。隐藏刚刚打开的元素的唯一方法是单击菜单上的下一个元素,然后第一个元素将关闭,第二个将打开.. 可以修改为使打开的元素,关闭并保持关闭状态,而不是关闭并立即打开。

代码:

// JavaScript Document
$(document).ready(function() {

    //ACCORDION BUTTON ACTION   
    $('div.accordionButton').click(function() {
        $('div.accordionContent').slideUp('normal');    
        $(this).next().slideDown('normal');
    });

    //HIDE THE DIVS ON PAGE LOAD    
    $("div.accordionContent").hide();

});
  <div id="wrapper">
     <div class="accordionButton"><strong>Subject:</strong></div>
    <div class="accordionContent">Text</div>
     <div class="accordionButton"><strong>Subject:</strong></div>
    <div class="accordionContent">Text</div>
     <div class="accordionButton"><strong>Subject:</strong></div>
    <div class="accordionContent">Text</div>        
</div>
4

2 回答 2

1

改变:

$('div.accordionContent').slideUp('normal');
$(this).next().slideDown('normal');

成为

$('div.accordionContent').not($(this).next()).slideUp('normal');
$(this).next().slideToggle();
于 2013-02-03T23:09:45.313 回答
0

这可能是一个事件冒泡问题,但没有完整的代码,很难说。您可以尝试在单击侦听器的末尾包含“return false”以停止冒泡并确保不执行任何默认行为。

于 2013-02-03T23:11:18.150 回答