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



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

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');
    })
}

防止主菜单通过和切换子菜单的功能完美运行。我现在只需要点击时通过子菜单 a。

停止从这些锚元素传播

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();
    })
}

最新更新