Html 敲除单击事件仅在初始化时触发

Html 敲除单击事件仅在初始化时触发,html,events,knockout.js,Html,Events,Knockout.js,我想要一个可单击的div,用于切换我的基础详细信息视图的可见性 <div class="header" data-bind="click: Details(!Details())"> ... </div> <div data-bind="visible: Details()"></div> ... 详细信息存储在我的淘汰模型中,其默认值为false。当我添加这个部分时,函数被调用,细节变得可见。在这之后,div是可点击的(悬停时不同的鼠标指针

我想要一个可单击的div,用于切换我的基础详细信息视图的可见性

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

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


知道为什么会发生这种情况吗?

单击绑定采用函数引用,因此需要将处理程序包装到匿名函数中:

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

在您当前的代码中,
Details(!Details())
在投标初始化时执行,未定义的
Details(…)
的返回值被指定为处理程序,这就是为什么此后它不工作的原因


另请参见:访问事件对象,或传递更多参数部分。

谢谢,只有这些元素被添加多次,当前单击一次可切换所有元素。有没有关于如何使它们个性化的想法?不管怎么说,你的答案很好,我不得不等一等才接受,所以我遇到了下一个问题:你会多次添加它们吗,用
foreach
?如果看不到您的完整模型以及UI是如何构建的,就很难判断哪些连接不正确,如果您仍然存在此问题,您应该在提供上述详细信息的不同问题中询问它。