clickBubble:false不工作

时间:2016-04-21 13:53:35

标签: knockout.js

我已在click绑定here上的KO文档文章中关注此示例:

<div data-bind="click: myDivHandler">
    <button data-bind="click: myButtonHandler, clickBubble: false">
        Click me
    </button>
</div>

我的代码看起来像这样:

<tr role="row" data-bind="click: 'True' === 'True' ? ($root.BrowsingCatalog() ? $root.viewProduct : $root.showProduct) : $root.showProduct">
    <td class="col-sm-1" data-bind="visible: 'True' == 'True' ? !$root.BrowsingCatalog() : true">
        <div class="btn-group">
            <button type="button" data-bind="clickBubble: false" class="btn btn-round dropdown-toggle " aria-expanded="false">
                 <span class="fa fa-caret-down"></span> 
            </button>
        </div>
    </td>
</tr>

当我点击button时,来自tr的事件会被调用。我错过了什么?

1 个答案:

答案 0 :(得分:11)

我通过在data-bind="click: function() { }, clickBubble: false"上设置button来解决此问题。

显然,没有clickBubble的{​​{1}}将无效。如果你想要一个整个元素的事件除了某个子元素,那么在子元素上设置click将不起作用,你还需要为data-bind: "clickBubble: false"指定一个绑定,即使它只是一个空函数...