首页 > 代码库 > Knockout事件传递参数的几种方式
Knockout事件传递参数的几种方式
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Ko Test</title>
</head>
<body>
<h1>方法1</h1>
<ul data-bind="foreach: fruits">
<li data-bind="click: $root.clickHdr.bind(name), text:name + ‘(点击)‘"></li>
</ul>
<h2>方法2</h2>
<ul data-bind="foreach:fruits">
<li data-bind="click: $root.clickHdr2.bind({name:name}), text:name + ‘(点击)‘"></li>
</ul>
<h3>方法3</h3>
<ul data-bind="foreach: fruits">
<li data-bind="click: function() {$root.clickHdr3(name);}, text:name + ‘(点击)‘"></li>
</ul>
<h4>方法4</h4>
<ul data-bind="foreach: fruits">
<li data-bind="click:$root.clickHdr4, text:name + ‘(点击)‘"></li>
</ul>
<script src="http://www.mamicode.com/js/knockout-3.1.0.js"></script>
<script>
var myViewModel = {
fruits: [
{ id: 1, name: ‘苹果‘ },
{ id: 2, name: ‘梨子‘ },
{ id: 3, name: ‘香蕉‘ },
{ id: 4, name: ‘萄萄‘ }
],
clickHdr:function(){
alert(this);
},
clickHdr2: function () {
alert(this.name);
},
clickHdr3: function (name) {
alert(name);
},
clickHdr4: function (obj) {
alert(‘this.id is ‘ + this.id + ‘\n\
obj.id is ‘ + obj.id + ‘\n\
this === obj is ‘ + (this === obj)
);
}
};
ko.applyBindings(myViewModel);
</script>
</body>
</html>
Knockout事件传递参数的几种方式