Jquery 使用击倒单击绑定切换引导下拉列表
是否可以使用knockout触发引导下拉功能 我制作了一个JSFIDLE来强调这个问题: 此位切换菜单并使加载时可见:Jquery 使用击倒单击绑定切换引导下拉列表,jquery,twitter-bootstrap,knockout.js,Jquery,Twitter Bootstrap,Knockout.js,是否可以使用knockout触发引导下拉功能 我制作了一个JSFIDLE来强调这个问题: 此位切换菜单并使加载时可见: $('.dropdown-toggle').dropdown('toggle'); 当我在敲除按钮单击功能中使用相同的代码时,菜单将按预期进行切换,但它将再次切换并保持隐藏状态 在JSFIDLE中,我用一个警报连接了bootstrap Showed事件,您可以看到菜单实际上是切换的 问题: <div class="dropdown" id="myDropdown">
$('.dropdown-toggle').dropdown('toggle');
当我在敲除按钮单击功能中使用相同的代码时,菜单将按预期进行切换,但它将再次切换并保持隐藏状态
在JSFIDLE中,我用一个警报连接了bootstrap Showed事件,您可以看到菜单实际上是切换的
问题:
<div class="dropdown" id="myDropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu</a>
<ul class="dropdown-menu">
<li>Here goes stuff</li>
</ul>
</div>
<button data-bind="click: buttonClick, clickBubble: false">Button</button>
var viewModel = function () {
var self = this;
self.buttonClick = function(){
$('.dropdown-toggle').dropdown('toggle');
}
}
ko.applyBindings(new viewModel());
如何强制菜单仅切换一次?或者我应该使用不同的方法吗?我在Firefox31上这样做没有问题。
你的代码实际上是有效的
您的配置是什么?按钮上的单击事件有问题。修复方法是在按钮上的数据绑定
中添加clickBubble:false
。我认为你的活动正在冒泡,所以它会立即打开和关闭,所以你不会看到它
查看工作示例:
标记:
<div class="dropdown" id="myDropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu</a>
<ul class="dropdown-menu">
<li>Here goes stuff</li>
</ul>
</div>
<button data-bind="click: buttonClick, clickBubble: false">Button</button>
var viewModel = function () {
var self = this;
self.buttonClick = function(){
$('.dropdown-toggle').dropdown('toggle');
}
}
ko.applyBindings(new viewModel());
注4:防止事件冒泡
默认情况下,敲除将允许单击事件继续冒泡
最多可访问任何更高级别的事件处理程序。例如,如果您的元素
并且该元素的父元素都在处理单击事件,然后
将触发两个元素的单击处理程序。如有需要,,
您可以通过包含额外的
名为clickBubble的绑定,并将false传递给它,如下所示
例如:
我用铬。但在你发表评论后,我也在firefox上进行了测试,但它仍然不适合我。显示警报框后,菜单将再次关闭。单击“菜单”文本并比较行为:)这不是答案。我知道你目前还不能发表评论,但我会删除它,否则它可能会被否决和/或被标记为删除。