2012-04-25 112 views
1

我想知道如何(如果有方法)通过ctrl键处理多个链接点击。如何使用Ctrl键执行多个页面超链接点击

因此,例如,用户将转到一个网页,其上有3个超链接。然后用户将按住ctrl键,然后单击一个链接,然后单击另一个链接。然后当ctrl键被释放时,将发生事件(可能是基于两个超链接值的组合的搜索)。

我使用C#并假设解决方案可能会在jQuery中完成?

该选择应该类似于Windows资源管理器的工作方式。按住ctrl键,然后选择一个文件,然后选择另一个文件,然后将其剪切或粘贴到某处。

我非常感谢您提供的任何帮助,因为我正在努力寻求别处帮助。

+0

有哪些你到目前为止已经试过?用简单的方法,将'class =“selectedItem”'设置为选定的超链接。 – 2012-04-25 10:13:51

+0

请注意,如果客户端浏览器对您正在使用的密钥(如Ctrl)具有自定义绑定,则默认浏览器行为仍会发生。 – 2012-04-25 10:46:03

回答

0

高层的想法是

1)创建CSS类突出选定的链接

2)编写JavaScript函数来检测对超链接的KeyDown javsacript事件Ctrl键,这个功能应该切换之类的超链接到选定的链接(以便用户知道哪些超链接被选中)并将超链接值/ url添加到隐藏字段以知道所选超链接的链接

3)在超链接上的KeyUp javsacript事件上编写javascript函数以获取选定的链接并对其执行操作。

+0

谢谢伊姆兰。我将把这个纳入我的解决方案 – Marky 2012-04-25 11:18:10

1

你可以做这样的事情;保持CTRL键的状态(keycode = 17),当CTRL被按下(keydown事件)时,在键盘事件(当键码== 17时)打开新窗口中的链接时添加链接到数组。在标签中打开它们并不是真的可能,但是有一个适用于Firefox的工作示例;阅读this

例子:

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
var ctrlIsDown = false; 
var links = new Array(); 

function afterKeyUp() 
{ 
    if(links.length > 0){ 
     for(var link in links){ 
       window.open(links[link]); 
     } 
     links = new Array(); 
     $("a").css('color', ''); 
    } 
} 

$(document).ready(function(){ 

$(document).keydown(function(e){ 
    if(e.which == 17) { 
     ctrlIsDown = true; 
    } 
}); 

$(document).keyup(function(e){ 
    if(e.which == 17) { 
     ctrlIsDown = false; 
     afterKeyUp(); 
    } 
}); 

$("a").click(function(e){ 
    if(ctrlIsDown){ 
     var href = $(this).attr("href"); 
     if($.inArray(href, links) == -1) 
     { 
      links[links.length] = href; 
      $(this).css('color', 'red'); 
     } 
    e.preventDefault(); 
    } 
}); 

}); 
</script> 
</head> 
<body> 

<a href="1.html">Link 1</a> 
<a href="2.html">Link 2</a> 
<a href="3.html">Link 3</a> 


</body> 
</html> 
+0

非常感谢Brian。我绝对会试试这个。 – Marky 2012-04-25 11:17:38