javascript - 简单的 jQuery Accordion - 在可见的地方隐藏按钮

标签 javascript jquery html css accordion

任何建议都会很好。这很简单,但我想不通。

我正在使用一个简单的 jQuery Accordion 脚本。这是 HTML:

<ul id="menu">
    <li>
        <a>Weblog Tools</a> <!-- THIS IS MY LINK BUTTON -->
            <ul>
                <li><a href="http://www.pivotx.net/">PivotX</a></li>
                <li><a href="http://www.wordpress.org/">WordPress</a></li>
                <li><a href="http://www.textpattern.com/">Textpattern</a></li>
                <li><a href="http://typosphere.org/">Typo</a></li>
            </ul>
    </li>
    <li>
        <a>Programming Languages</a> <!-- THIS IS MY LINK BUTTON -->
            <ul>
                <li><a href="http://www.php.net/">PHP</a></li>
                <li><a href="http://www.ruby-lang.org/en/">Ruby</a></li>
                <li><a href="http://www.python.org/">Python</a></li>
                <li><a href="http://www.perl.org/">PERL</a></li>
                <li><a href="http://java.sun.com/">Java</a></li>
                <li><a href="http://en.wikipedia.org/wiki/C_Sharp">C#</a></li>
            </ul>
     </li>
</ul>

这是脚本:

function initMenu() {
    $('#menu ul').hide();
    $('#menu ul:first').show();

    $('a.collapse').click(

function() {
    var checkElement = $(this).next();
        if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
    return false;
        }
        if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {

    $('#menu ul:visible').slideUp('normal');


        checkElement.slideDown('normal');
    return false;
            }
        });
    }

    $(document).ready(function() {initMenu();});

不错的简单脚本,又好又轻。

这是我的问题,任何建议都会很棒!

我需要得到 <a>Link Button</a>在当前可见菜单中为display: none并在打开的菜单之间切换。

所以想法是,当当前可见菜单打开时,打开它的链接具有 display: none 样式。添加到它。但所有其他<a>Link Buttons</a>应该可见并且没有样式 display: none应用。这样菜单仍然可以正常使用。

只有可见的打开菜单应该有 display: none .

如果您能提供帮助,那就太棒了。提前致谢。

最佳答案

修改menu.js
function initMenu() {
  $('#menu ul').hide();
  $('#menu ul:first').show();
  $('#menu li a').click(
    function() {
      var checkElement = $(this).next();
      if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
        return false;
        }
      if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
        $('#menu ul:visible').slideUp('normal');
        checkElement.slideDown('normal');
        return false;
        }
      }
    );
  }
$(document).ready(function() {initMenu();});

对此:

function initMenu() {
  $('#menu ul').hide();
  $('#menu li a').click(
    function() {
      var checkElement = $(this).next();
      if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
        return false;
        }
      if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
        $('#menu li a').show();
        $(this).hide();
        $('#menu ul:visible').slideUp('normal');
        checkElement.slideDown('normal');
        return false;
        }
      }
  );
}
$(document).ready(function() {initMenu();});

我修改了第一部分,因此它不会显示第一个子菜单。 然后我添加了这一行,以便它显示其他链接,但隐藏事件链接。

$('#menu li a').show();
$(this).hide();

编辑:

您还可以在 http://jsfiddle.net/3cmPz/ 查看有效的实现

关于javascript - 简单的 jQuery Accordion - 在可见的地方隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6930370/

相关文章:

javascript - 相对于另一个物体旋转

javascript - 成员函数不是函数错误

javascript - 包装 Firebug(或类似)控制台 api 时如何访问行号

javascript - Window.print 问题

javascript - 关闭窗口时的警告框,但不重新加载

html - 使用 CSS 居中 HTML 按钮

javascript - 警报显示隐藏基于用户响应

javascript - 尝试从 jQuery 代码调用常用函数

html - 如何通过添加新类来覆盖默认宽度!对动态宽度很重要

javascript - 如何创建包含 3D 空间中动画的 2D 对象的图形 Canvas ?