내가 지금 사업부간단한 클릭 이벤트 위임 이벤트 위임 나는 myDiv, 내 링크 및 anotherDiv의에서 클릭을 차단하고자하는 버블 링의 개념을 사용하여,
<div class="myDiv">
<a href="#" class="myLink">somelink</a>
<div class="anotherDiv">somediv</div>
</div>
이 작동하지 않습니다.
은 모범 사례에 따르면 이것은
$(document).click(function(e) {
var $eventElem = $(e.target);
var bStopDefaultClickAction = false;
if ($eventElem.is('.myDiv'))
{
alert('Never alerts when clicking on myLink or anotherDiv, why????');
bStopDefaultClickAction = true;
}
return bStopDefaultClickAction;
});
위 내 경고 질문을 참조 문서 자체에 (따라서 용어 '대표') 세계적으로 클릭을 수신하여 수행 할 수 있습니다. 나는 클릭 소리가 나기 시작했다. 문서가 실제로 클릭을 받고 위임을 시작하기 때문에 다소 효과가 있습니다. 그러나 myLink 및 anotherDiv 클릭에 대한 버블 링 메커니즘은 if 문이 실행되지 않는 것처럼 작동하지 않습니다.
또는 클릭 한 src 요소에서 할당 된 위임 객체 (이 경우 문서)? 그것은 죽은 ... 지금은 'myDiv'핸들러를 많이 그리고 아마도 다른 사람이해야하기 때문에
$('.myDiv').click(function(e) {
//...as before
});
그러나 defeates 대표단의 목적이 종류 : 그런 경우가 있다면, 나는이 같은 위임을 처리해야 하나의 'document'이벤트 위임 객체 만 있으면됩니다.
누구나 어떻게 작동하는지 알 수 있습니까?
http://docs.jquery.com/Events/live
그래서 당신이 코드가 될 것이다 :
, 위해' 아래의 수표가 작동하는지 확인하십시오. –
내가 메모리에서 쓴 것처럼 문제의 일부가 아니지만 지금 편집했습니다. – Tommy
당신의 이해가 약간 벗어난 것 같아요. 각 요소에 대해 클릭이 발생해야한다고 생각합니다. dom의 각 계층 구조 수준에서 하나의 클릭 이벤트 만받습니다. mydiv div에 대한 클릭 핸들러를 추가하십시오. 먼저 해당 이벤트가 트리거 된 후 문서 클릭 처리기가 표시되지만 목표는 항상 동일합니다. – redsquare