jQuery - 单击菜单项时停止折叠式菜单关闭

2024-01-03

单击子菜单链接时如何阻止手风琴菜单 ul.sub-menu 关闭?

当单击父项时,手风琴会打开,但当单击其下一级的子菜单项时,它会再次关闭。

这是我的 HTML:

<ul class="menu">
  <li><a href="#">parent 1</a>
        <ul class="sub-menu">
            <li><a href="#">1st child item</a></li>
        </ul>
  </li>
    <li><a href="#">parent 2</a>
    <ul class="sub-menu current-menu-parent">
        <li><a href="#">2nd child item</a></li>
        <li class="current-menu-item"><a href="#">3rd child item</a></li>
    </ul>
  </li>
  <li><a href="#">parent 3</a>
        <ul class="sub-menu">
            <li><a href="#">4th child item</a></li>
        </ul>
  </li>    
</ul>​​​​​​​​

这是我的 jquery:

jQuery(function($) {
    $(".menu > li").children("a").attr('href', 'javascript:void(0)');
    $('.sub-menu').hide();  
    $('.current-menu-parent').show();    
    $('.menu > li').click(function() {
        $(this).find('ul').slideToggle('slow');
    });
});​

为你演奏手风琴,

HTML :

<ul class="menu">
  <li><a href="javascript:void(0)">parent 1</a>
        <ul class="sub-menu">
            <li><a href="#">1st child item</a></li>
        </ul>
  </li>
    <li><a href="javascript:void(0)">parent 2</a>
    <ul class="sub-menu current-menu-item">
        <li><a href="#">2nd child item</a></li>
        <li><a href="#">3rd child item</a></li>
    </ul>
  </li>
  <li><a href="javascript:void(0)">parent 3</a>
        <ul class="sub-menu">
            <li><a href="#">4th child item</a></li>
        </ul>
  </li>    
</ul>​​​​​​​​

CSS:

<style>
.sub-menu{
    display:none;
}
.current-menu-item{
    display:block;
}
</style>

JS:

rel = 0;


$('.sub-menu').hover(function(){ // findind mouse postion
        rel = 1; // if mouse on submenu
    }, function(){ 
        rel = 0;  if mouse out submanu
});
$('.menu > li').live("click",function(){


        if(!$(this).hasClass("active")){ // if not already opened
            $('.sub-menu').slideUp();    // hide all other submenu
            $('.sub-menu',this).slideDown();  // show which your clicked
            $(".menu > li").remove('active');  //  remove all active class in li
            $(this).addClass('active'); //adding active class which your clicked li
        }
        else{
            if(rel==0){
                $('.sub-menu').slideUp(); // if clicked already opend parent that will close
                $(this).removeClass('active'); // remove all active class
            }
            else{

            }
        }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery - 单击菜单项时停止折叠式菜单关闭 的相关文章

  • 如何(在 javascript、Jquery 或 Ajax 等中)将本地文本文件或 xml 文件加载到变量中?

    首先 我知道
  • 有人可以离线编辑 javascript 文件来运行恶意代码吗?

    我担心与我网站的 javascript 文件相关的问题 我不确定这是否可行 当有人访问网站时会下载js文件 如果有人编辑下载的js脚本并插入自己的代码 然后刷新网站怎么办 在新的刷新中 网站将读取编辑后的 Js 文件并运行恶意代码 恶意代码
  • 对象预期错误、javascript、jQuery

    我在 javascript 文件中收到一个对象预期错误 在这种情况下 这是否意味着 jQuery 文件未正确包含 导致错误的行是 function 浏览器中的错误是 Message Object expected Line 6 Char 1
  • 使用 Javascript 或 jQuery 按第一列快速对表格进行排序

    我有一个动态填充的表FullCalendar 问题是FullCalendar不关心其原始顺序 该表如下所示 table thead tr th th th Date th th hours th tr thead tbody tr td c
  • 当视图切换到其他浏览器选项卡时,网页 javascript 的行为有所不同

    抱歉我写标题时的英文不好 我已经尽力了 直播站点 http tt fbcwinterretreat org http tt fbcwinterretreat org 请注意 为了更好地了解发生的情况 我建议您降低窗口高度 问题是 如果您一直
  • 动态替换 css 文件(并将新样式应用到页面)

    我有一个页面有在加载名为 CSS 的标头中light css 我还有一个名为dark css 我想要一个按钮来交换页面的样式 css 文件中有 40 个选择器 有些在两个文件中不匹配 我怎样才能删除对light css用JS删除所有应用的样
  • 有没有办法同步 gif 文件?

    我有一个页面 上面有 7 个 gif 文件 有没有办法将它们全部同步 以便它们同时开始播放 我正在考虑预加载它们 但如果一个加载时间比另一个加载时间长 它们仍然可能无法开始同步 正如 Archer 上面指出的 一种方法是预加载它们 然后重置
  • 如何使用 jQuery 在悬停时显示工具提示消息?

    正如标题所述 如何使用 jQuery 在悬停时显示工具提示消息 工具提示插件可能对于您的需要来说太重了 只需使用您希望在工具提示中显示的文本设置 标题 属性即可 yourElement attr title This is the hove
  • 如何将 JavaScript 添加到 ASP.NET MVC 视图?

    我有一个简单的视图 我想添加一个JQuery 日期选择器 JavaScript http jqueryui com demos datepicker 到这个观点 而不是every查看 通过母版页 我不确定执行此操作的最佳方法是什么 其次 我
  • jQuery:通过子项进行动画、连续循环

    接近但还没有完全实现 我想让第一个子 div 显示几秒钟 向下滑动 通过定位 并淡出视图 然后下一个子 div 向上滑动并淡入视图 连续重复 在显示最后一个子项后循环返回 看起来我已经让循环正常工作了 尽管计数似乎将子 div 堆叠在一起
  • jQuery Calendar:如何在特定日期添加可点击事件?

    我正在使用 jquery 完整日历http arshaw com fullcalendar http arshaw com fullcalendar显示会议 我只是想确认是否可以添加活动 让我们创建一个新会议 使用 php ajax 在特定
  • jQuery 拖动并跟随鼠标

    我正在尝试创建一个两列的可滑动区域 中间有一个拖动栏 请参阅这个小提琴 http jsfiddle net W7tGj 2 http jsfiddle net W7tGj 2 我试图避免将 jQ UI 添加到其中 因此任何帮助将不胜感激 我
  • 如何在 js.erb 中使用 Ruby 代码?

    我可以使用以下方式在模态中渲染部分内容escape javascript在js erb文件代码中 body append my modal modal show 但是 我似乎无法获得以下结果 console log ERB 将输出一个纯字符
  • 克隆表行

    我怎样才能使用javascript 我假设 来克隆一个表格行 就像下图所示的那样 您可以将现场活动连接到所有按钮 例如 如果您给他们一类克隆 则以下内容将起作用 input clone live click function put jqu
  • JavaScript 变量带有一个我需要在 Html.ActionLink 中使用的 ID

    我的 jQuery 代码中有一个 JavaScript 变量 其中包含一个我需要在我的Html ActionLink但它不起作用 Html ActionLink Genomf r AnswerForm AnswerNKI new id go
  • $(document).ready 回调何时执行?

    假设我们附加一个 click http api jquery com click 锚点的处理程序 a 中的标签 document ready http api jquery com ready 打回来 该处理程序将取消默认操作 遵循href
  • jQuery Mobile 标题限制

    jQuery 移动标题有什么限制 有多少个字符 我们如何改变这个限制 使用 jQuery 移动 谢谢 您可以覆盖 ui title 类上的左右边距 为自己提供更多空间 但要小心 因为边距用于确保文本不会干扰标题中的任何左右按钮 ui hea
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • 发送带有图像的嵌套 JSON

    我一直在尝试研究一种能够通过 Ajax 将嵌套 JSON 请求发送回服务器的方法 根据我的理解 我们主要用于向服务器发送图像或文件的 formdata 在这种情况下不起作用 因为 FormData 似乎不处理嵌套对象 这就是我需要发送的有效
  • jQuery、$(element).click 在 ie<9 上不起作用

    我有一个像这样的 jQuery 点击事件 document ready function id secteur activite click function console log ok 在 firefox 和 ie9 上 当我单击我的元

随机推荐