所以基本上我需要做的是,当我点击一个UL列表项目时,按住Ctrl键需要复制并且该副本需要转到另一个列表,到目前为止我只能到达我点击它进入另一个没有Ctrl的列表的东西,这对于这个作业也是强制性的。 我将上传脚本到目前为止:
var usersA = document.getElementById("users-a");
var usersB = document.getElementById("users-b");
var onclickA;
var onclickB = function() {
usersA.appendChild(this);
this.onclick = onclickA;
return false;
};
onclickA = function() {
usersB.appendChild(this);
this.onclick = onclickB;
return false;
};
for (var i=0; i < usersA.getElementsByTagName("li").length; i++)
usersA.getElementsByTagName("li")[i].onclick = onclickA;
for (var i=0; i < usersB.getElementsByTagName("li").length; i++)
usersB.getElementsByTagName("li")[i].onclick = onclickB;
有关如何使用尽可能少的代码执行此操作的任何建议?我的意思是我需要为此创建另一个事件,我迷路了,谢谢你的帮助!
答案 0 :(得分:0)
就像我说的那样。如果已按下ctrl
键并单击li
元素。基本上没有这种方法可以检测ctrl
键是否被按下。但是下面这个技巧将在keydown上返回true,在keyup上返回false。因此,当按下ctrl
键时,它始终为真,直到它被释放
var keys = {};
onkeydown = onkeyup = function(e){
e = e || event;
keys[e.keyCode] = e.type == 'keydown';
if(keys[17] == true){
//the ctrl key is held down, so run your code here
}
}