Jen*_*onD 14 javascript knockout.js
我在单选按钮列表上绑定了"已检查"和"单击"事件.但是,只要单击单选按钮,选择就不会停留.我一定是做错了.如果你们能指出我正确的方向,真的很感激.
查看型号:
var viewModel = {
wantsSpam: ko.observable(true),
spamFlavor: ko.observable('cherry'),
click: function(model){
console.log(model);
}
};
Run Code Online (Sandbox Code Playgroud)
视图:
<input type="radio" name="flavorGroup" value="cherry"
data-bind="checked: spamFlavor, click:click" />
Run Code Online (Sandbox Code Playgroud)
nem*_*esv 39
默认情况下,Knockout将阻止
click事件采取任何默认操作.
...
但是,如果您确实希望让默认click操作继续进行,只需return true从您的单击处理函数开始.
因此,您的单选按钮会因您的click处理程序而重置,并且需要return true在最后修复它:
click: function(){
alert('Hi');
return true;
}
Run Code Online (Sandbox Code Playgroud)
演示JSFiddle.
基本上,您的点击处理程序最终不会捕获您想要保留的值.
发生的事情是,在您选择项目后它将恢复为默认值.
return true;
作为你的唯一代码handler.
您只需删除点击事件或使用return true点击事件即可.因为Knockout阻止click事件采取任何默认操作.这意味着,如果您在标签(链接)上使用单击绑定,例如,浏览器将仅调用您的处理程序函数,而不会导航到链接的href
var viewModel = {
wantsSpam: ko.observable(true),
spamFlavor: ko.observable('cherry'),
/*click: function(){
alert('Hi');
}*/
};
Run Code Online (Sandbox Code Playgroud)
要么
var viewModel = {
wantsSpam: ko.observable(true),
spamFlavor: ko.observable('cherry'),
click: function(){
alert('Hi');
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15535 次 |
| 最近记录: |