Bootstrap 3禁用的菜单项(li)在单击时仍然转到参考



我正在使用bootstrap 3,并且我有一个菜单项被禁用;然而,当我选择它时,我仍然会参考:

<ul class="dropdown-menu">
<li><a class="dropdown-item" href="E1ActivitySelect.html">Activity - E1 Administration</a></li>
<li><a href="#">Activity - E1</a></li>
<li class="divider"></li>
<li class="disabled"><a href="Camp.html">Camps</a></li>
<li><a class="dropdown-item" href="#">Hikes</a></li>
<li><a href="#">Major Events</a></li>
<li><a href="#">Pen Pals</a></li>
</ul>

我如何停止被带到参考(即,真正禁用(。

我的js:

$(document).ready(function(){
$("#includedContent").load("Menu.html");
$(".dropdown-menu li.disabled a").click(function() {
return false;
});
$('[data-toggle="tooltip"]').tooltip();
selectPerson();
}); // end document.ready

Bootstrap并没有真正禁用内部锚点,它只是看起来被禁用了。正确的方法是定义没有hrefanchor,因此:

<li class="disabled"><a>Camps</a></li>

如果你需要href,你必须通过JavaScriptjQuery:禁用点击

$(document).ready(function() {
// For dynamically added elements
$(document).on("click", ".dropdown-menu li.disabled a", function() {
return false;
});
// For staticly loaded elemetns
/*
$(".dropdown-menu li.disabled a").click(function() {
return false;
});
*/
});
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="E1ActivitySelect.html">Activity - E1 Administration</a></li>
<li><a href="#">Activity - E1</a></li>
<li class="divider"></li>
<li class="disabled"><a href="Camp.html">Camps</a></li>
<li><a class="dropdown-item" href="#">Hikes</a></li>
<li><a href="#">Major Events</a></li>
<li><a href="#">Pen Pals</a></li>
</ul>
</div>

如果计划动态添加元素,可以将click处理程序附加到document本身。原因是jQuery代码中的事件处理程序是在页面第一次加载时附加的,当您在页面加载后添加元素时,附加事件处理的代码已经运行,因此您可以将事件处理重新附加到新插入的元素,也可以仅将其添加到这些新加载元素的容器元素。document几乎包含了所有人,所以它总是一个安全的赌注。

要完全停止/禁用您可以使用href="javascript:void(0)的链接,这将停止您的href到您的锚标签

​您可以只使用一行CSS来避免任何链接上的事件:

pointer-events: none;​

最新更新