为什么我的锚标签不起作用?

时间:2013-05-27 04:59:30

标签: jquery html css

我使用了无序列表,列表项,jQuery和CSS创建了一个下拉菜单。单击它们时,没有菜单项(锚点)有效。单击锚点时发生的所有操作都会消失。如果我右键单击一个锚点然后在新选项卡中打开它,它会按照我的预期重定向。 Here是一个显示我的代码和手头问题的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>

1 个答案:

答案 0 :(得分:4)

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

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

Fiddle

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
}