gpt4 book ai didi

javascript - Knockout,为什么我的函数没有在 clickevent 上触发?

转载 作者:行者123 更新时间:2023-11-30 17:21:11 27 4
gpt4 key购买 nike

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);
}};

我想让第一个表现得像第二个。

最佳答案

编写 toggleContent(this.content) 会立即执行您的 toggleContent 函数,如果它没有返回 function 则它会破坏点击绑定(bind).

所以你需要将你的 registerTClick 设置为函数引用或返回函数引用的东西。

在您的情况下,您可以使用 bind method从你的 toggleContent 创建一个新函数,它在被调用时接收 this.content:

this.registerTClick = toggleContent.bind(this, this.content);

演示 JSFiddle .

关于javascript - Knockout,为什么我的函数没有在 clickevent 上触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com