如何删除Bootstrap下拉列表的preventDefault行为

时间:2015-02-17 16:57:38

标签: javascript jquery html twitter-bootstrap-3

我在我的标记中使用了Bootstrap 3下拉菜单。但是除了默认行为之外,如果我将鼠标悬停在元素上,它就会弹出。所以我创建了一个小脚本:

jQ('.dropdown').hover(function() {
    jQ(this).find('.dropdown-menu').stop(true, true).delay(50).fadeIn();
}, function() {
    jQ(this).find('.dropdown-menu').stop(true, true).delay(50).fadeOut();
});

工作正常。但由于某种原因,当我想将第一个项目(触发悬停)作为链接时,Bootstrap下拉列表会阻止重定向到另一个页面。我点击链接后没有任何反应,只会附加一个班级.open。如果我右键单击并选择open destination in new tab,我只能打开链接。我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:3)

只需从按钮中删除data-toggle="dropdown"属性(我猜它是锚标记):

<a class="btn btn-default dropdown-toggle" href="http://somewhere" target="_blank" id="dropdownMenu1" >
    Dropdown
    <span class="caret"></span>
</a>

JSFiddle


data-toggle属性是bootstrap的指示符,一个事件应该绑定到该元素,取决于属性值:

data-toggle="dropdown"
data-toggle="tooltip"
data-toggle="modal"
data-toggle="popover"
data-toggle="tab"
data-toggle="collapse"
data-toggle="button"

注意: 您可能在使用“点击打开链接”方案的移动设备上遇到问题。