客观的
单击绑定的主要
功能是在单击DOM元素时使用相关的js
函数。最常见的元素是按钮、
输入和A。
例如:
你点击0timesclick我
源代码 uff1a
你点击次数
点击我
VaR模型= { {
(0):ko.observable numberOfClicks,
incrementclickcounter:函数(){
无功previouscount = this.numberofclicks();
This.numberOfClicks(previouscount + 1);
}
};
在上面的例子中,该incrementclickcounter回调函数将被触发时,按下按钮,更新的视图状态。
注意,点击后,它不一定是一个视图模型的功能。可以是任何对象的功能,可以直接引用。例如,点击:someobject.somefunction。
注释1:传递
参数 在
处理程序中,UI
显示一系列监视
属性,如:
londonremove
parisremove
tokyoremove
源代码 uff1a
删除 功能myviewmodel(){
var =;
self.places = ko.observablearray({ 'london,巴黎,'tokyo});
当前项目将作为第一个参数传递,因此我们知道要删除哪个
位置。
self.removeplace =功能(地方){
Self.places.remove(的地方)
}
}
Ko.applyBindings(新myviewmodel());
单击删除时,只删除当前项目。在源代码中,它是当前项目。
需要注意的两点:
如果你是嵌套在结合上下文,例如,如果你使用foreach或结合,但你的处理功能是根视图模型或其他一些家长的模型,你需要使用一个前缀,如美元或美元母根位置处理功能。
在您的视图模型中,可以使用自(或其他一些变量)作为这个别名。
备忘录2:传递事件对象(多个参数)
在某些
情况下,您可能需要访问DOM的事件对象(事件),一般来说,KO将传递事件对象作为函数的第二个参数:
点击我
VaR模型= { {
myfunction:功能(数据、事件){
如果(事件。大写键){
当
用户切换键时做不同的
操作 {人}
执行正常动作
}
}
};
Ko.applyBindings(ViewModel);
如果您想要传递更多的参数,您可以使用函数
文本的方式:
点击我
还有更优雅的编写,比如绑定绑定函数的多个参数:
点击我
注意3:允许
默认单击操作
默认情况下,Ko阻止任何违约行为。例如,你将点击一个标签,点击后,
浏览器调用click绑定回调函数。但href
连接跳不执行。
如果您不希望此默认停止动作,您可以在回调函数中返回true。
附注4:防止泡沫事件
默认情况下,KO允许单击绑定继续任何高级别事件处理。例如,父元素和子元素都单击绑定,并且将触发这两个元素的单击绑定。
一个额外的结合clickbubble可以用来
解决这个问题:
点击我
在上面的例子中,mybuttonhandler将被称为,和情感必然clickbubble,和假设,父元素的mydivhandler不叫。
注释5:与jQuery的交互
如果jQuery中有一个单击事件,那么将调用jQuery的单击事件。如果你想一直使用
本地事件的过程中,你可以将下面的代码添加到ko.applybindings:
ko.options.useonlynativeevents =真;
以上是knockoutjs 3结合点击。X API第四章,希望对你有帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您
支持网站。