2016-11-23 3 views
-1

기본적으로 내가해야 할 일은 Ctrl 키를 누른 채로 다른 UL 목록 항목을 클릭하면 다른 목록으로 이동해야하므로 지금까지 내가 뭔가를 클릭 할 때 Ctrl 키를 사용하지 않고 다른 목록으로 이동하는 경우에만이 숙제를 수행해야합니다. 내가 지금까지 무엇을 내가 스크립트를 업로드 할 수 있습니다 : 가능한 한 코드의 최소 금액으로 작업을 수행하는 방법에 대한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

가능한 복제 [키 jQuery로 클릭 이벤트 기간 동안 누르면 내가 확인할 수 있는가? (http://stackoverflow.com/question/2445613/jquery가있는 동안 click-event-with-press-when-key-when-check-key-check) – CBroe

+0

jquery가 필요하지 않습니다. 자바 스크립트가 필요합니다. –

+0

그럼 다시 작성하십시오 ... – CBroe

답변

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 
    } 
} 
+0

네, 맞습니다. 두 코드를 결합하는 방법이 있습니까? –

+0

가능합니다. 그냥 모든 코드를 복사하여 내가 코멘트 한 곳에 붙여 넣으십시오. '// ctrl 키가 눌러져 있기 때문에 여기에 코드를 실행하십시오.' 완벽하게 작동합니다. 내 대답을 upvote 것을 잊지 마세요. –