Javascript 仅在onclick之前触发href事件
我发现很多关于“仅在onclick之后触发href事件”的文章,但我的要求几乎相反,即“仅在onclick之前触发href事件”。 我希望先执行href,然后执行onclick事件 这是我的密码: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>
<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,使其行为类似于按钮或锚定。