Jquery 使用shift键(如gmail)在复选框之间取消选中

Jquery 使用shift键(如gmail)在复选框之间取消选中,jquery,html,Jquery,Html,使用下面的代码,我尝试实现类似gmail的shift键功能 var lastChecked=null; $(文档).ready(函数(){ 变量$chkboxes=$('.chkbox'); $chkboxes.单击(函数(e){ 如果(!lastChecked){ lastChecked=这个; 返回; } 如果(如换档键){ var start=$chkboxes.index(此); var end=$chkboxes.index(最后选中); $chkboxes.slice(Math.m

使用下面的代码,我尝试实现类似gmail的shift键功能

var lastChecked=null;
$(文档).ready(函数(){
变量$chkboxes=$('.chkbox');
$chkboxes.单击(函数(e){
如果(!lastChecked){
lastChecked=这个;
返回;
}
如果(如换档键){
var start=$chkboxes.index(此);
var end=$chkboxes.index(最后选中);
$chkboxes.slice(Math.min(开始,结束),Math.max(开始,结束)+1.prop('checked',lastChecked.checked);
}
lastChecked=这个;
});
});

检查1
检查2
检查3
检查4

设置
checked
属性时,选中5
使用
this.checked
而不是
lastChecked.checked
。因此,如果使用shift键取消选中一个框,它将取消选中所有其他框,而不是复制上一个复选框的
checked
属性

var lastChecked=null;
$(文档).ready(函数(){
变量$chkboxes=$('.chkbox');
$chkboxes.单击(函数(e){
如果(!lastChecked){
lastChecked=这个;
返回;
}
如果(如换档键){
var start=$chkboxes.index(此);
var end=$chkboxes.index(最后选中);
$chkboxes.slice(Math.min(开始,结束),Math.max(开始,结束)+1.prop('checked',this.checked);
}
lastChecked=这个;
});
});

检查1
检查2
检查3
检查4

勾选5
对于我们这些不太使用gmail的人,你能更新问题来解释shift键应该做什么吗?你正在使用
lastChecked。勾选
作为shift单击的框和中间所有框的状态。因此,如果您选中框1-5,然后按住shift键并单击3,它将选中框3-5,因为它正在复制5的状态,所以不会取消选中它们。也许你应该使用
this.checked
而不是
lastChecked.checked
?是的,你是对的!!我应该用这个,而不是最后检查。