Dan*_*ana 9 javascript jquery knockout.js
我正在尝试向我的按钮添加一个click事件,只有在单击按钮时才会将Id,Category和Name作为参数发送.
<tbody data-bind="foreach: tehTab()">
<tr>
<td data-bind="text: $data.Category"></td>
<td data-bind="text: $data.Name"></td>
<td>
<button type="button" class="btn chart_btn" role="button" data-toggle="popover" data-trigger="focus" data-html="true" data-placement="right" container="body" tabindex="0" data-original-title="" title="" style="border:none; background-color:white" data-bind="attr: { id: $data.Id,'data-contentwrapper':'.chartdraw' + $data.Id},click: getLast7($data.Id, $data.Category, $data.Name) , text:$data.Value"></button>
<div data-bind="css: 'chartdraw' + $data.Id" class="chartdrawetc" style="display:none">ASD</div>
</td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
即使我试图改变:
click: getLast7($data.Id, $data.Category, $data.Name)
Run Code Online (Sandbox Code Playgroud)
同
attr: { id: $data.Id ,onclick: getLast7($data.Id, $data.Category, $data.Name)
Run Code Online (Sandbox Code Playgroud)
它仍然会像tehTab长度一样多次触发getLast7方法.
我究竟做错了什么?
Raj*_*esh 21
添加()功能名称后会调用它.你将不得不使用.bind
click: getLast7.bind(this, $data.Id, $data.Category, $data.Name)
Run Code Online (Sandbox Code Playgroud)
function vm(){
this.notify = function(str){
console.log(str)
}
}
ko.applyBindings(new vm())Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js"></script>
<div data-bind="click: notify.bind(this, 'Hello')">Click me</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14005 次 |
| 最近记录: |