我在这里使用了一个非常基本的例子,其中我想将点击的项目的值传递给函数。我尝试了一些不起作用的东西。有人可以告诉我如何继续吗?也许我的做法不对?
感谢您的帮助。
<div class='liveExample'>
<h2 data-bind="value: 'A', click: myFunction">Aaaaa</h2>
<h2 data-bind="value: 'B', click: myFunction">Bbbbb</h2>
<h2 data-bind="value: 'C', click: myFunction">Ccccc</h2>
</div>
// Here's my data model
var ViewModel = function() {
this.myFunction = function (elm)
{
alert('you clicked: ' + elm);
}
};
ko.applyBindings(new ViewModel()); // This makes Knockout get to work
jsFiddle这里:http://jsfiddle.net/LkqTU/10229/
PS:我知道我们可以做...click: function () { myFunction('A'); }">
,但我认为有更好的方法。
答案 0 :(得分:1)
您可以从事件目标(h2
元素)中获取值:
// Here's my data model
var ViewModel = function() {
this.myFunction = function (data, event)
{
debugger;
alert('you clicked: ' + event.target.value);
}
};
ko.applyBindings(new ViewModel());
详细了解click binding
答案 1 :(得分:1)
尝试:
this.myFunction = function (vm, event)
{
alert('you clicked: ' + event.srcElement);
}
答案 2 :(得分:0)
this.myFunction = function (val1, val2)
{
...;
}
在绑定中你必须设置:
<h2 data-bind="value: 'C', click: myFunction.bind($data, 'A', 'B')">Ccccc</h2>
这必须帮助你。您可以通过此方法传递任何值的数量。