【问题标题】:Knockout click bindings: onClick vs. onClick()淘汰赛点击绑定:onClick 与 onClick()
【发布时间】:2016-02-01 23:08:29
【问题描述】:

我有使用像this 这样的敲除的简单代码,并且在里面我有一个将名字大写的函数:

self.capi = function(){
    self.firstName(self.firstName().toUpperCase());
}

当我单击 Capi 按钮时,将执行此功能。但是我在这里感到困惑的是,当我使用 data-bind="click: capi" 时,它对我来说效果很好。但是如果我使用data-bind="click: capi()",无论我是否点击按钮,名字都是大写的?谁能在这里为我解释一下data-bind="click: capi()"data-bind="click: capi"有什么区别

【问题讨论】:

    标签: javascript jquery knockout.js


    【解决方案1】:

    从技术上讲,Knockout 处理这些绑定的方式是相同的。

    有点。

    它们都将一个函数绑定到点击事件,正如预期的那样,但是当你把那些() 放在最后时会发生不同的事情。这告诉 Knockout 不仅在单击它时运行它,而且在它处理它的同时继续运行它。这对于设置初始状态很有用,例如,如果您想向用户展示按下按钮 时发生的情况。

    TL;DR

    它们的工作方式相同,但data-bind="click: capi()" 在点击和加载页面时都会被调用。

    【讨论】:

    • 更重要的是:click 绑定需要一个函数。如果你把一个函数call放在那里,它期望函数返回点击的函数。
    • @RoyJ 我以前从不知道其中的原因,但这是有道理的。谢谢你。
    猜你喜欢
    • 2021-12-02
    • 2013-10-31
    • 1970-01-01
    • 2016-10-26
    • 2014-08-01
    • 2013-02-04
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多