HTML:
<div data-bind='click: registerClick'>
<img src="image.png" width="450px" />
</div>
<div data-bind='visible: content'>
content
</div>
使用Javascript:
this.content = ko.observable(false);
//Named function triggers at the start
//(after pressing f5, and doesn't trigger when I click the image)
this.registerTClick = toggleContent(this.content);
//unamed function only triggers at the clickevent.
this.registerClick = function () {
if (this.content() == false) {
this.content(true);
}};
我想让第一个表现得像第二个。
答案 0 :(得分:2)
写toggleContent(this.content)
会立即执行您的toggleContent
函数,如果它没有返回function
,那么它会破坏点击绑定。
因此,您需要将registerTClick
设置为函数引用或返回函数引用的内容。
在您的情况下,您可以使用bind
method从toggleContent
创建一个新函数,该函数在被调用时会收到this.content
:
this.registerTClick = toggleContent.bind(this, this.content);
演示JSFiddle。