我将click事件绑定到列表中的每个列表项:
<ul class="modal-subject-list" data-bind="foreach: filteredSubjects">
<li data-bind="click: $parent.pickSubject, css: {alreadyAddedBackground: hasBeenAdded}">
<!-- Lots of code here -->
</li>
</ul>
如果'hasBeenAdded‘解析为true,我想禁用click:
绑定。我知道一些混乱的方法来处理它:
if: hasBeenAdded
,另一个用于if: !hasBeenAdded
。这远不是干的有没有注册"clickIf“绑定的方法?
发布于 2013-09-24 07:01:57
执行此操作
<ul class="modal-subject-list" data-bind="foreach: filteredSubjects">
<li data-bind="click: hasBeenAdded ? null : $parent.pickSubject">
<!-- Lots of code here -->
</li>
</ul>
阅读-
如果已经添加了filteredSubject,则不执行任何操作,否则添加到列表中或其他任何操作。
发布于 2018-09-25 09:17:23
只是想扩展@PW Kad的答案,以防它能帮助其他人。
我发现我可以对knockout事件节点应用一个条件,这样就可以绑定所有处理程序或不绑定任何处理程序。在我的例子中,我只需要将事件绑定到不是只读的输入。所以,如果你需要做类似的事情,这是可行的。祝你编码愉快。
事件:$data.SomeProperty()?空:{多个事件处理程序}
示例代码:
<input type="number"
data-bind="value: $data.Value,
css: $data.Css,
attr: {
title: $data.Title,
min: $data.Min,
max: $data.Max,
readonly: $data.ReadOnly
},
event: $data.ReadOnly() ? null : { // <----- HERE
focus: $root.onFocus,
blur: $root.onBlur,
input: $root.onInput,
keypress: $root.onKeypress
}" />
https://stackoverflow.com/questions/18970244
复制相似问题