2

我想要一个可点击的 div 来切换我的基础详细信息视图的可见性。

<div class="header" data-bind="click: Details(!Details())">
...
</div>
<div data-bind="visible: Details()"></div>

详细信息存储在我的淘汰模型中,默认值为 false。当我添加这个部分时,函数被调用并且细节变得可见。之后,div 是可点击的(悬停时鼠标指针不同),但淘汰模型中的值不再改变。

任何想法为什么会发生这种情况?

4

1 回答 1

6

click 绑定需要一个函数引用,因此您需要将处理程序包装到一个匿名函数中:

<div class="header" data-bind="click: function() { Details(!Details()) }">

在您当前的代码中,Details(!Details())在初始化出价时执行,并且Details(...)未定义的返回值被分配为处理程序,这就是为什么它在那之后不起作用的原因。

另请参阅点击绑定文档:访问事件对象或传递更多参数部分。

于 2013-06-20T08:43:32.423 回答