Javascript Ctrl +单击无法在Firefox中运行

时间:2016-06-14 04:50:37

标签: javascript jquery

我有一个函数,它应该在单击类型复选框的输入时运行...

$.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")会关闭,但是当我按住控制键时,它不会执行任何操作。任何人都可以向我提供一些指导,说明为什么会发生这种情况或我如何解决它?

谢谢。

1 个答案:

答案 0 :(得分:0)

非常沮丧之后,我发现这个函数没有任何问题,而是Firefox没有将标签元素中的点击事件传递给它们的目标输入字段...因为我使用自定义查看复选框,实际输入元素被隐藏,而标签是可见的并且以复选框为目标。