【问题标题】:jQuery menu stay open after link click单击链接后,jQuery 菜单保持打开状态
【发布时间】:2012-06-16 09:06:09
【问题描述】:

我有一个 jQuery 菜单,它在“单击”时打开并在“dblclick”时关闭。 http://jsfiddle.net/snoffoz/4rZa9/1/

我的问题是它(子菜单)在我单击链接后关闭。 有没有办法让它只在点击主菜单点(菜单 1、菜单 2)时打开/关闭?

编辑:我的问题不会出现在 jsfiddle 中,因为链接不是真实的。

“ul”“li”是由 Wordpress 生成的。 WP链接http://wptemp.site90.net/

【问题讨论】:

  • 当我点击子链接时它没有关闭?
  • 出于好奇,为什么需要将每个菜单项的 id 分配为该项的类?例如。菜单项 236
  • 是的,点击它们后它们并没有关闭
  • @Amit 我认为 Wordpress 默认会生成它
  • 您使用哪个浏览器查看此页面?

标签: jquery wordpress menu onclick


【解决方案1】:

工作演示 http://jsfiddle.net/JuvwB/

如果我建议您尝试重构您的无序列表,您遇到了绑定问题,因为您的顶部 ul 列表 li 嵌套了全新的 ul 即水平菜单。

这段代码应该对你有所帮助,我所做的只是在用户单击嵌套列表时返回 false。

你也可以试试这个:http://api.jquery.com/unbind/

希望这会有所帮助,干杯!

代码

jQuery.noConflict();
(function($) {
$(function() {

    // Dropdown Menu

    var timeout    = 100;
    var closetimer = 0;
    var ddmenuitem = 0;

    function jsddm_open() {
        jsddm_canceltimer();
        jsddm_close();
        ddmenuitem = $(this).find('ul').css('visibility', 'visible').parent().addClass('jsddm_hover').end();
    }
    function jsddm_close() {
        if(ddmenuitem) ddmenuitem.css('visibility', 'hidden').parent().removeClass('jsddm_hover');
    }
    function jsddm_timer() {
        closetimer = window.setTimeout(jsddm_close, timeout);
    }
    function jsddm_canceltimer() {
        if(closetimer) {
            window.clearTimeout(closetimer);
            closetimer = null;
        }
    }

    $('ul.jsddm li').bind('click', jsddm_open);

    $('ul.jsddm li').bind('dblclick',  jsddm_timer);
    $('ul.sub-menu li a').bind('dblclick', function(){
        return false;        
    });
    //document.onclick = jsddm_close;

    $('.thumb img').after('<span></span>');
    $('.thumb span').css('opacity','0');
    $('.post_home a:first-child').hover(function(){



    }); 



});
})(jQuery);

【讨论】:

  • 感谢@undefined 的回复,但还是没有骰子。每次我单击链接时,子菜单都会消失。我发现了这个:stackoverflow.com/questions/8300261/… 但无法让我在 jsfiddle 中工作。 jsfiddle.net/snoffoz/c5nER/2
  • 嗨@Snoffoz 不在:jsfiddle.net/JuvwB ?当您单击链接时,链接将保留!
  • @Snoffoz 这不是我的答案 :)
  • @Tats_innit 我知道它似乎在 jsfiddle 中工作,但这只是因为链接不是真实的,只有 #'s。
  • @Tats_innit 抱歉,我不想偷你的答案 bruv :P
猜你喜欢
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 2014-05-11
相关资源
最近更新 更多