Jquery 使用击倒单击绑定切换引导下拉列表

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">

是否可以使用knockout触发引导下拉功能

我制作了一个JSFIDLE来强调这个问题:

此位切换菜单并使加载时可见:

$('.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上进行了测试,但它仍然不适合我。显示警报框后,菜单将再次关闭。单击“菜单”文本并比较行为:)这不是答案。我知道你目前还不能发表评论,但我会删除它,否则它可能会被否决和/或被标记为删除。