我有anchor
代码
<a class="list-group-item" data-bind="click: $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }"></a>
这给了我点击资源的对象。
onResourceTimeSelect: function (data, e) {
}
data
是对象。有属性isSelected
,如果它1
它应该取消绑定click事件。
if (data['isSelected'] == 1) {
}
如何停止点击事件?试过$(data).unbind('click')
,$(data).click(function () { return false });
并且没有一个可以使用。
如果我在console.log(data)
中写if
,它确实会给我回复消息,所以我100%进入if
。
我如何实现这一目标?
答案 0 :(得分:2)
data-bind="click: isSelected == 1 ? function() {return false;} : $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }"
应该做的伎俩,它基本上把一个if放在(淘汰)点击处理程序中。如果值为1,则返回false,否则将执行函数。
注意:isSelected需要是一个可观察的!
答案 1 :(得分:2)
我将click
处理程序重命名为onClick
并处理方法中的不同情况:
self.onClick = function(resourceTime, event) {
if (resourceTime.isSelected() === 1) {
return false;
}
self.onResourceTimeSelected(resourceTime);
};
优点:
click
绑定值易于阅读且不易出现(语法)错误onClick
命名表示有多种方法可以处理点击