2014-10-21 5 views
0

몇 가지 목록 항목이 있으며 각각 옆에 작은 상자가 있습니다. 상자를 클릭하면 몇 가지 정보가 표시됩니다. 상자 외부에 클릭이 있으면 상자를 숨기려고합니다. 그러나 나는 그것을 정확하게하는 방법을 모른다. 이이 문제와 비슷한 게시물은 이미 있지만, 그들 모두는 jQuery를 사용하지만 난이 어디 document에 클릭을 들어 순수 자바 스크립트자바 스크립트를 사용하여 요소 외부에서 클릭 감지

I tried to do following way:http://jsfiddle.net/kn8hw4tf/1/

감사

+0

당신은 전체에'click' 이벤트를 들어야' – hindmost

+0

을 document' 가장 빠른 해결책은 더 리스너'body'를 추가하고 클릭에 상자를 숨기는 것입니다. –

+0

바이올린 링크가 작동하지 않습니다. –

답변

1

를 사용하여 완수해야하고, 반응 그들에게. 상자의 클릭 소리를 듣고 event.stopPropagation()을 호출하여 document의 수신자에게 치지 않습니다.

document.getElementById('test_id').addEventListener('click', function getDetails(evt) { 
    var id = this.getAttribute('id'); 
    alert("Clicked on " + id); 
    evt.stopPropagation(); 
}); 

document.addEventListener("click", function (e) { 
    alert("Clicked outside"); 
}); 
+0

내가 기대할 수있는 예가 있거나 좀 더 자세하게 설명해주세요. 고맙습니다. – user596502

+0

죄송합니다. 귀하의 바이올린에는 너무 많은 오류와 관련이없는 비트가있어서 당신이 정확히 무엇을하려했는지 이해할 수 없었습니다. 개념을 보여주는 최소한의 예는 [here] (http://jsfiddle.net/kn8hw4tf/3/)입니다. – Amadan

관련 문제