0

我使用无序列表、列表项、jQuery 和 CSS 制作了一个下拉菜单。当我单击它们时,没有一个菜单项(它们是锚点)起作用。当我单击锚点时发生的所有事情就是菜单消失了。如果我右键单击一个锚点,然后在新选项卡中打开它,它会按我的预期重定向。是一个 jFiddle,它显示了我的代码和手头的问题。请注意,菜单有点难以打开,您必须单击图标的底部。如果有人能就为什么锚不能正确打开提出建议,将不胜感激。

HTML:

<span class="menu_item" id="settings">
    <ul>
        <li>
            <a href="#" onclick="return false;">&#9788;</a>
            <ul>
                <li>
                    <a href="/admin.php">Admin Center</a>
                </li>
                <li>
                    <a href="/login/process.php">Logout</a>
                </li>
            </ul>
        </li>
    </ul>
</span>
4

1 回答 1

4

return false;你有两件事,其中settings_open之一是取消默认操作(按照链接)。请记住,点击会从后代元素冒泡到祖先元素。

如果您return false;改为event.stopPropagation()改为,则不会阻止默认设置,并且链接有效。(也没有理由true从事件处理程序返回。)

小提琴

function settings_open(event){

    settings_canceltimer();
    settings_close();
    var submenu = $(this).find('ul');

    if(submenu){
        ddmenuitem = submenu.css('visibility', 'visible');
        event.stopPropagation(); // <== Change here
    }

    // Removed return true here
}
于 2013-05-27T05:06:43.113 回答