js按键+鼠标控制列表选中

本文介绍了一种使用JavaScript结合Ctrl或Shift按键与鼠标操作来实现列表选择的方法,旨在提供一种类似Windows资源管理器的用户体验,提高列表操作效率。通过js代码,可以轻松实现多选和连续选中列表项。

js组合按键控制选择列表

在网页中列表展示后可以对其进行基本操作,如删除、修改等,传统的做法是用checkbox选择,操作过程麻烦,有一种操作方式更人性化,熟悉windows用户资源管理器文件操作方式一样,按Ctrl或Shift+鼠标等组合操作就可方便的选择列表:

js代码:

function hoverPinInit() {
    $(".hover").hover(
        function(){
            $(this).addClass("hovered")
        },
        function() {
            $(this).removeClass("hovered")
        }
    )
//    以下为控制组合按键选择
    $(".hover").click(function(e) {
    	var ele = $(this)
    	if(e.shiftKey){
    		var startIndex = 0 //默认开始索引
    		var listBox = ele.parent() //限制事件的范围
    		var activeE = listBox.find(".active")
    		var index1 = activeE.first().index() //得到第一次被选中的索引
    		var cIndex = ele.index() //当前被选中的索引
//    		如果没有被选中的元素则默认为从第一个开始选
    		if(index1!=-1){ 
    			startIndex = index1
    		}
    		var startI = startIndex
    		var endI = cIndex
    		if(startIndex>cIndex){
    			startI = cIndex
    			endI = startIndex
    		}
    		for(var i=startI;i<=endI;i++){
    			listBox.find(".hover").eq(i).addClass("active")
    		}
		}else if(e.ctrlKey){
    		if(ele.hasClass("active")){
    			ele.removeClass("active")
    		}else{
    			ele.addClass("active")
    		}
    	}else{
            $(".hover").removeClass("active")
			ele.addClass("active")
    	}
    })
}

HTML:

<div class="list-box">
<span style="white-space:pre">	</span><div class="list-head">
<span style="white-space:pre">		</span><div class="column c1">
<span style="white-space:pre">			</span>本地文件名
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">		</span><div class="column c2">
<span style="white-space:pre">			</span>图片名称
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">		</span><div class="column c3">
<span style="white-space:pre">			</span>图片
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">		</span><div class="column c4">
<span style="white-space:pre">			</span>分类
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">	</span></div>
<span style="white-space:pre">	</span><div class="list-body">
<span style="white-space:pre">		</span><div class="list-row hover active">
<span style="white-space:pre">			</span><div class="column c1">
<span style="white-space:pre">				</span>1418738915385.jpg
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c2">
<span style="white-space:pre">				</span><input class="form-control" placeholder="输入图片名称">
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c3">
<span style="white-space:pre">				</span><img class="col-thumbnail" src="/images_library/util/showImage.do?pathName=tempPhotos&amp;imageId=1418738915385.jpg">
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c3">
<span style="white-space:pre">				</span><select class="classify form-control">
<span style="white-space:pre">					</span><option value="5">funny</option>
<span style="white-space:pre">					</span><option value="6">face</option>
<span style="white-space:pre">				</span></select>
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">		</span><div class="list-row hover active hovered">
<span style="white-space:pre">			</span><div class="column c1">
<span style="white-space:pre">				</span>1418738942581.jpg
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c2">
<span style="white-space:pre">				</span><input class="form-control" placeholder="输入图片名称">
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c3">
<span style="white-space:pre">				</span><img class="col-thumbnail" src="/images_library/util/showImage.do?pathName=tempPhotos&amp;imageId=1418738942581.jpg">
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c3">
<span style="white-space:pre">				</span><select class="classify form-control">
<span style="white-space:pre">					</span><option value="5">funny</option>
<span style="white-space:pre">					</span><option value="6">face</option>
<span style="white-space:pre">				</span></select>
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">		</span><div class="list-row hover active">
<span style="white-space:pre">			</span><div class="column c1">
<span style="white-space:pre">				</span>1418738998617.jpg
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c2">
<span style="white-space:pre">				</span><input class="form-control" placeholder="输入图片名称">
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c3">
<span style="white-space:pre">				</span><img class="col-thumbnail" src="/images_library/util/showImage.do?pathName=tempPhotos&amp;imageId=1418738998617.jpg">
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">			</span><div class="column c3">
<span style="white-space:pre">				</span><select class="classify form-control">
<span style="white-space:pre">					</span><option value="5">funny</option>
<span style="white-space:pre">					</span><option value="6">face</option>
<span style="white-space:pre">				</span></select>
<span style="white-space:pre">			</span></div>
<span style="white-space:pre">		</span></div>
<span style="white-space:pre">	</span></div>
</div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值