按住 Ctrl 键单击,将一个 li 元素复制到另一个列表
Onclick with Ctrl hold duplicate one li element to another list
所以基本上我需要做的是,当我单击一个 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;
关于如何使用尽可能少的代码来完成它有什么建议吗?我的意思是我是否需要为此创建另一个事件,我迷路了,感谢您的帮助!
按照你说的我的理解。如果按下 ctrl
键并单击 li
元素。基本上没有这种方法可以检测 ctrl
键是否被按下。但是下面的这个技巧将 return 在 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
}
}
所以基本上我需要做的是,当我单击一个 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;
关于如何使用尽可能少的代码来完成它有什么建议吗?我的意思是我是否需要为此创建另一个事件,我迷路了,感谢您的帮助!
按照你说的我的理解。如果按下 ctrl
键并单击 li
元素。基本上没有这种方法可以检测 ctrl
键是否被按下。但是下面的这个技巧将 return 在 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
}
}