我有一个函数,它应该在单击类型复选框的输入时运行...
$.fn.ctrlSelectable = function() {
var lastChecked,
$boxes = this;
$boxes.click(function(evt) {
console.log("clicked")
if(!lastChecked) {
lastChecked = this;
return;
}
if(evt.ctrlKey) {
var start = $boxes.index(this),
end = $boxes.index(lastChecked);
$boxes.slice(Math.min(start, end), Math.max(start, end) + 1)
.prop('checked', lastChecked.checked)
.trigger('change');
}
lastChecked = this;
});
};
$("form").find('input[type="checkbox"]').ctrlSelectable();
该功能适用于IE,Google和其他可能的功能,但在Firefox中不起作用。当我不按住Ctrl键并单击复选框时,console.log("clicked")
会关闭,但是当我按住控制键时,它不会执行任何操作。任何人都可以向我提供一些指导,说明为什么会发生这种情况或我如何解决它?
谢谢。
答案 0 :(得分:0)
非常沮丧之后,我发现这个函数没有任何问题,而是Firefox没有将标签元素中的点击事件传递给它们的目标输入字段...因为我使用自定义查看复选框,实际输入元素被隐藏,而标签是可见的并且以复选框为目标。