javascript - 无法单击 onClick() 事件下拉列表中的 anchor 标记

标签 javascript jquery onclick slidetoggle

我有这个 HTML:

<ul>
    <li class="parent_menu">
        <ul class="child-menu">
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
            <li><a href="#">Link 3</a></li>
        </ul>

    </li>
</ul>

以下 Jquery 用于在将鼠标悬停在父级上时显示下拉列表:

$('.parent_menu').on('touchstart click', function(e){
                e.stopPropagation(); 
                e.preventDefault();

                $(".child-menu", this).slideToggle(400); 

            }       
        );

这里发生的情况是,如果我单击父菜单,则会显示下拉菜单。但我无法单击下拉列表中子菜单项(如链接 1、链接 2 等)的 anchor 标记。我认为这是由于上面使用的 slideToggle()onClick() 造成的。我该如何修复它以使子菜单链接可点击?

最佳答案

这些是有原因的吗?

e.stopPropagation(); 
e.preventDefault();

preventDefault() 会杀死你的 anchor 。如果您不需要它们,请将其删除。

http://jsfiddle.net/isherwood/Qv8hn

<小时/>

以下是如何使用 stopPropagation() 来防止链接切换菜单:

$('.parent_menu').on('touchstart click', function (e) {
    $(".child-menu", this).slideToggle(400);
}).find('a').on('touchstart click', function (e) {
    e.stopPropagation(); 
});

http://jsfiddle.net/isherwood/Qv8hn/1

关于javascript - 无法单击 onClick() 事件下拉列表中的 anchor 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24439806/

相关文章:

javascript - Chrome 扩展 "contextMenus.create"标题属性验证器?

javascript - 如何在点击时停止旋转画廊

jquery - 如何使用 jquery 阻止右键单击选项

javascript - Onclick 应用于许多元素,第二次单击时触发

button - dojo.connect不会通过按钮连接 'onclick'

javascript - 如何测试像 'Loading' 这样的 gif 图片是否有效?

javascript - 按首字母 Javascript 的字母顺序对对象进行排序和分组

javascript - 输入类型= angularjs中的数字验证

javascript - Canvasjs:根据屏幕尺寸不同设置

javascript - 页面重新加载时打开一个弹出窗口