当我在<tr>上有侦听器时,为什么我不能在复选框上有'
Why I can't have a click listener on a checkbox, when I have a listener on the <tr>
我有一个新手问题,但是我不明白这是怎么回事。
我有这个表:
<table class="activeTrackersTable" id="allTrackersTable" data-page-navigation=".pagination">
<thead>
<tr>
<th>ID</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th class="reactivateTH">Reactivate</th>
</tr>
</thead>
<tbody data-bind="foreach: ObjArray">
<tr data-bind="click: loadT">
<td><span data-bind="text: id"></span>
</td>
<td><span data-bind="text: tName"></span>
</td>
<td><span data-bind="text: pName"></span>
</td>
<td><span data-bind="text: creator"></span>
</td>
<td class="reactivateTD">
<input type="checkbox" name="reactivate" data-bind="event:{change: reactivate}">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="5">
<div class="pagination"></div>
</td>
</tr>
</tfoot>
</table>
现在,正如你所看到的,我已经在tr
上放置了一个监听器,它工作得很完美,但是当我点击checkbox
时,我正在执行loadT
函数,这是监听tr
点击的函数。为什么reactivate
函数没有运行?它应该得到执行一旦我点击了复选框。
我知道我在这里漏掉了一些非常小的东西,但是我现在真的找不到我的错误。
p。S下面是两个函数:
loadT = function() {
console.log('test1');
};
reactivate = function(){
console.log('inside');
};
当我点击复选框时,它只打印:'test1',我不明白为什么侦听器不工作。我在以前的项目中使用过数百次,没有任何问题。我的猜测是视图模型中有些东西搞砸了,但是再次,有2个独立的函数和2个独立的侦听器。
如果您将clickBubble: false
添加到标记中以防止事件冒泡,则您的示例将使用click
事件:
<input type="checkbox" name="reactivate"
data-bind="event:{click: reactivate}, clickBubble: false" />
工作小提琴请注意,您将需要return true;
来允许默认操作(实际选中的框)。
reactivate: function () {
console.log('checkbox');
return true;
}
<<p>看到strong>医生 注意:我不知道为什么,但我不能使它与change
事件(如果有人可以在评论中解释)非工作小提琴
因为它是一个复选框,我猜你需要反应,如果它被选中或未选中?KO的做法是
ViewModel = function() {
this.checked = ko.observable(false);
this.checked.subscribe(this.onChecked, this);
};
ViewModel.prototype = {
onChecked: function(value) {
console.log(value);
}
};
<input data-bind="checked: checked" type="checkbox" />
http://jsfiddle.net/EG5HU/如果您不想对checkstate进行操作,而只想对某些内容进行格式化,则可以使用computed
http://jsfiddle.net/EG5HU/1/相关文章:
- 为什么在这个网站上不能通过JS访问元素
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 为什么这个代码不能正常工作
- 为什么jquery悬停在jsfiddle中可以工作,而在我的html布局中却不能
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 为什么Turbolinks不能正常工作?Rails应用程序
- 为什么错误不能字符串化
- 为什么jQuery代码段在没有IFrame的情况下可以工作,而在有IFrame时却不能工作
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作
- 为什么动态加载的事件在我的代码中不能正常工作
- 为什么数据不能't显示在查看页中
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- (为什么)我不能从生成器中抛出异常吗
- 为什么我不能在'show.bs.modal'
- 为什么竞争不能在离子中显示(隐藏在标题下方)(离子竞争不能正常工作)
- 为什么可以对整数变量调用toString(),而不能对文字数字调用
- 为什么这个while循环不能使用AND逻辑运算符
- 为什么我不能在FancyBox中使用javascript变量
- 为什么我不能将键映射到 React 组件上
- 我可以'我不明白为什么我能;不要在JavaScript中更改蜡笔的颜色