在e.preventDefault()之后激活子菜单链接

时间:2014-02-13 15:24:56

标签: javascript jquery

我正在使用jQuery在支持它的设备上将我的css下拉菜单转换为启用触摸的菜单。我遇到的问题是我的父李的行为已停止使用e.preventDefault(),我似乎无法弄清楚如何让孩子们正常运作。这是我正在使用的代码:

if ("ontouchstart" in window || navigator.msMaxTouchPoints) {
    $('#menu > li:has(ul.sub-menu)').click(function (e) {
        e.preventDefault();
        $('#menu > li > a.sub-menu').toggle(300);
        $('#menu > li > ul > li > a').trigger('click');
    })
}

保持主要li不通过和切换子菜单的功能完美无缺。我现在只需要点击子菜单a即可完成。

1 个答案:

答案 0 :(得分:1)

停止那些锚元素的传播

if ("ontouchstart" in window || navigator.msMaxTouchPoints) {
    $('#menu > li:has(ul.sub-menu)').click(function (e) {
        e.preventDefault();
        $('#menu > li > a.sub-menu').toggle(300);
        $('#menu > li > ul > li > a').trigger('click');
    })
    $('#menu ul.sub-menu a').click(function (e) {
        e.stopPropagation();
    })
}