【发布时间】:2017-05-08 00:32:16
【问题描述】:
所以我有这段代码 sn-p 来处理 input[type=checkbox] 上的点击事件。我想要实现的是手动设置 checked 属性,具体取决于 if 条件 scope.vm.checkedRows.indexOf(orderId) === -1 (这里的 false/true 分配被反转以说明这一点),但是它不起作用。
link: function(scope, element) {
element.on('click', '.csv-ignore input', function(event) {
scope.$apply(function() {
var orderId = angular.element(event.target).closest('tr').data('order-id')
if (scope.vm.checkedRows.indexOf(orderId) === -1) {
scope.vm.checkedRows.push(orderId);
event.target.checked = false;
} else {
scope.vm.checkedRows.splice(scope.vm.checkedRows.indexOf(orderId), 1);
event.target.checked = true;
}
});
return false;
})
}
复选框不会被选中/取消选中。我发现有趣的是,然后我注释掉 return false 它工作正常。但是我最初添加了return false 以防止默认行为并手动选中/取消选中复选框。你知道这段代码有什么问题吗?
【问题讨论】:
-
event.preventDefault() ?并删除 return false?
-
试过了,结果一样
-
你为什么不做相反的事情呢?如果它是假的,或者如果它是真的,请取消它检查
-
没关系。我有相反的条件只是为了测试
-
尝试返回 event.target.checked
标签: javascript jquery html angularjs dom