Javascript 仅在onclick之前触发href事件

Javascript 仅在onclick之前触发href事件,javascript,jquery,html,twitter-bootstrap-3,Javascript,Jquery,Html,Twitter Bootstrap 3,我发现很多关于“仅在onclick之后触发href事件”的文章,但我的要求几乎相反,即“仅在onclick之前触发href事件”。 我希望先执行href,然后执行onclick事件 这是我的密码: <li id="menu-users" class="dropdown"> <a href="" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-users"></i>

我发现很多关于“仅在onclick之后触发href事件”的文章,但我的要求几乎相反,即“仅在onclick之前触发href事件”。 我希望先执行href,然后执行onclick事件

这是我的密码:

<li id="menu-users" class="dropdown">
    <a href="" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-users"></i>Manage Users<b class="caret"></b></a>
    <ul class="dropdown-menu navmenu-nav">
        <li><a href="manage_a" onclick="keepNavMenuOpen()">Manage A</a></li>
        <li><a href="manage_b" onclick="keepNavMenuOpen()">Manage B</a></li>
        <li><a href="manage_c" onclick="keepNavMenuOpen()">Manage C</a></li>
        <li><a href="manage_d" onclick="keepNavMenuOpen()">Manage D</a></li>
    </ul>
</li>


function keepNavMenuOpen() {
    var element = document.getElementById("menu-users");
    element.classList.add("open");
}
  • 函数keepnavmenoupen(){ var元素=document.getElementById(“菜单用户”); 元素。类列表。添加(“打开”); }
    您是否尝试了setTimeout调用来延迟onclick事件

    像这样:

    <li><a href="manage_a" onClick="setTimeout(function(){keepNavMenuOpen.call(this)},20)">Manage A</a></li>
    
  • 请参阅此处:

    您正在错误地使用锚元素代替按钮元素。更改为
    元素,然后将您的行为附加到该元素

    来源:

    锚定标记经常被onclick事件滥用以创建 通过将href设置为“#”或“javascript:void(0)”来创建伪按钮 防止页面刷新。这些值会导致意外的错误 复制/拖动链接、在新窗口中打开链接时的行为 选项卡/窗口、书签以及JavaScript仍在下载时, 出错或被禁用。这也会向用户传达错误的语义 辅助技术(如屏幕阅读器)。在这些情况下,它是 建议改为使用。一般来说,您应该只使用 使用正确的URL进行导航的锚点


    的可能重复项最好指向,而不是在此处复制。不过,OP的URL似乎设置为href。我无法使用按钮,这是我的限制。将onclick=“keepnavmenoupen()添加到
  • 也不起作用,那么只需使用
    (或原始
    li
    )以及CSS
    :hover{cursor:pointer;}
    和样式t,使其行为类似于按钮或锚定。