2016-08-16 3 views
0
let toggleForm = function() { 
    // code here 
    } 

    document.getElementById('one').addEventListener("click", toggleForm, false); 

    document.getElementById('two').addEventListener("click", toggleForm, false); 

toggleForm에서 하나 또는 두 개의 요소가 이벤트를 발생 시켰는지 알고 싶습니다. 그 일에 대해 어떻게 생각하세요?콜백 함수에서 데이터 액세스하기

답변

2

사용 e.target :

<button id = 'one'>One</button> 
<button id = 'two'>Two</button> 
<script> 
    var one = document.getElementById('one'), 
    two = document.getElementById('two'); 
    let toggleForm = function(e) { 
    if (e.target === one) alert('One'); 
    else alert('Two'); 
    }; 
    one.addEventListener("click", toggleForm, false); 
    two.addEventListener("click", toggleForm, false); 
</script> 
+0

신난다! 화면 뒤에서 무슨 일이 벌어지고있는지는 addEventListener 내부에서 (우리의 경우 'e'에서) get이 콜백으로 전달된다는 것입니다. – user1904218

+1

예, e는 리스너에게 전달되는 이벤트 객체입니다. 다른 속성도 많이 있습니다. – csander

+0

아주 멋지다! 그냥 개체에 대한 console.log를 수행하고 다른 속성을 발견했습니다. 다시 한 번 감사드립니다. – user1904218

관련 문제