javascript - 如何防止 BootStrap 下拉列表中 URL 末尾的#?

标签 javascript jquery css twitter-bootstrap

我有这个链接:

<a href="#" id="myBtn"><i class="icon-user"></i><span>Add user</span></a>

我使用 preventDefault()return false 来避免地址末尾的 #。它完美地工作。问题是当我对 Bootstrap 的下拉菜单执行相同操作时。如果我保留 return false,它不会像预期的那样在末尾添加 #,但它也会阻止下拉列表消失,就像我删除 return false 时那样。 这是我的下拉代码:

<li class="dropdown">
  <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="ddBtn">
    <i class="icon-wrench"></i><span>Parent Item<b class="caret"></b></span>
  </a>
  <ul class="dropdown-menu">
    <li><a href="#" id="ddSonBtn">Child item</a></li>

Javascript:

$("#ddSonBtn").click(function () {
    //some code

    e.preventDefault();
});

有解决办法吗?

我正在使用

Bootstrap 2
jQuery

谢谢。

最佳答案

根据 Bootstrap 文档:

http://getbootstrap.com/javascript/#dropdowns

需要用data-target属性替换href,即

<a data-target="#" id="myBtn"><i class="icon-user"></i><span>Add user</span></a>

我相信这是一种更“自举”的做事方式,而不是抑制事件处理程序或手动操纵显示/隐藏行为。

关于javascript - 如何防止 BootStrap 下拉列表中 URL 末尾的#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15880753/

相关文章:

javascript - 将 div 最初向右滚动,然后在溢出 div 内向左滚动

html - 响应式设计 - 2 列缩减为 1 列

javascript - 使用 Javascript 设置正文左边距

javascript - 在angular js中为什么这个javascript替换方法来替换&nbsp在 Controller 端工作而不在模板端工作

javascript - Meteor.Error 抛出给客户端时是否会发生变化?

javascript - jQuery Javascript 评级 : Making the rating reappear when user takes their cursor off

javascript - 使用 html 表单的 ajax 调用将无法正常工作

html - 容器内内容的不透明度

javascript - 如何检测浏览器是否支持 CSS3 模糊?

javascript - Angular 2 将表单发布到外部链接