Javascript 敲除单击绑定:onClick与onClick()

Javascript 敲除单击绑定:onClick与onClick(),javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个简单的代码,里面使用了knockout like,我有一个函数将名字大写: self.capi = function(){ self.firstName(self.firstName().toUpperCase()); } 这个功能会在我点击Capi按钮时执行。但我在这里感到困惑的是,当我使用databind=“click:capi”时,它对我来说效果很好。但是如果我使用data bind=“click:capi()”,无论我是否单击按钮,名字都是大写的?有谁能在这里为我解释一

我有一个简单的代码,里面使用了knockout like,我有一个函数将名字大写:

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

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

在技术上与Knockout处理这些绑定的方式有什么区别?它们的工作原理相同

有点

它们都将函数绑定到click事件,正如预期的那样,但是当您将这些
()
粘贴到末尾时,会发生一些不同的情况。这告诉Knockout不仅要在点击时运行它,还要在处理过程中立即运行它。这对于设置初始状态非常有用,例如,如果您想向用户显示按下按钮时发生的情况的示例

TL;DR


它们的工作原理相同,但在单击和加载页面时都会调用
data bind=“click:capi()”

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

有点

它们都将函数绑定到click事件,正如预期的那样,但是当您将这些
()
粘贴到末尾时,会发生一些不同的情况。这告诉Knockout不仅要在点击时运行它,还要在处理过程中立即运行它。这对于设置初始状态非常有用,例如,如果您想向用户显示按下按钮时发生的情况的示例

TL;DR


它们的工作原理相同,但在单击和加载页面时都会调用
data bind=“click:capi()”

更重要的是,
click
绑定需要一个函数。如果将函数调用放在那里,它希望函数返回单击的函数。@RoyJ我以前不知道这个推理,但这是有道理的。谢谢。更重要的是,
点击
绑定需要一个函数。如果将函数调用放在那里,它希望函数返回单击的函数。@RoyJ我以前不知道这个推理,但这是有道理的。谢谢你。