我又在这里
$(document).ready(function () {
$("#id_priori").on('click', 'li', function(){
var self = $(this),
checkbox = self.find(":checkbox")[0];
checkbox.checked = !checkbox.checked;
self.toggleClass( 'on', checkbox.checked );
}).find(":checkbox").each(function(){
$(this).closest('li').toggleClass('on', this.checked);
});
$("#id_tipo").on('click', 'li', 'label', function () {
var self = $(this),
radio = self.find(":radio")[0];
radio.checked = !radio.checked
$(":radio:not(checked)").each(function () {
$(this).closest('li').toggleClass("on", this.checked);
});
})
.find(":radio").each(function () {
$(this).closest('li').toggleClass('on', this.checked);
});
});
一切正常但是对于标签,当我点击它们时它们不检查,做一些调整似乎一个事件多次触发并且取消它们,尝试设置警报并且你会看到我的内容意味着
任何想法都错了吗?
答案 0 :(得分:3)
因为您正在接管实际输入的角色,所以您需要允许input元素继续执行自己的行为(http://jsfiddle.net/icodeforlove/rF2FT/2/)
if (event.target === checkbox) return;
如果目标是实际的输入元素,您需要做的就是提前返回。现在输入元素正在检查自己,然后你告诉它取消选中它。