这次封闭开发中因为台站选中的时候方便选择,需要通过shift键进行多选,找了网上很多关于多选复选反选的,大部分都是通过Checkbox方法实现的;下面的是具体的demo,别人已经实现了,按着自己的理解重写了一下,理解代码,毕竟js还得花大把时间仔细学习下。
<! DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
</head>
<script type="text/javascript" src="./jquery-1.7.1.min.js"></script>
<script>
var Click=new Array();
function shift_select(){
$(".select li").click(function (e){
Click.push($(".select li").index($(this)))
if(e.shiftKey){
var iMin = Math.min(Click[Click.length-2],Click[Click.length-1])
var iMax = Math.max(Click[Click.length-2],Click[Click.length-1])
for(i=iMin;i<=iMax;i++){
$(".select li:eq("+i+")").addClass("selected") //为li 标签添加selected类
}
}else{
$(this).toggleClass("selected");
}
});
}
$(function(){
shift_select();
});
document.onselectstrat=function(event){ //避免文字被选中
event = window.event||event;
event.returnValue = false;
}
</script>
<style>
.selected{background:#AAAAD8;}
li{cursor:pointer;background:tan;}
</style>
<body>
<div class="select">
<ul>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
<li>yanyan</li>
</ul>
</div>
</body>
</html>