2012-10-24 4 views
0

참고 : 이제는 이벤트 발행 및 중지 방법에 대해 설명합니다.이벤트를 캡처하여 구독하지 못하도록 막으십시오.

코드 ==> 위의 함수에서

function foo (bar){ 
//do something 
} 

, 난 내가 밖으로 bubling을 중지 할 수 있습니다 event을 캡처 할.

내가 지금까지 시도했다 ->

1

function foo (bar,event){ 
//do something 
} 

jQuery를2

function foo (bar){ 
if(window.event || event) 
    // code to stop bubling 

//do something 
} 

사용하지 않으려 고 시도, 바닐라 JS 솔루션이 필요합니다 . 이벤트 발행 방지를 위해 this 메소드 사용.

- 초보.

+1

이벤트에서 오는? – Eric

답변

1

시도 :

function foo (bar,event){ 
    if (event.stopPropagation) { 
    event.stopPropagation(); 
    } else { 
    event.cancelBubble = true; 
    } 
} 
+0

시도해 보았습니다. dint work - 질문을 읽으십시오. 이미 말씀 드렸습니다. –

+0

당신은 foo에서 이벤트를 전달하고 있습니까? 코드를 보여줄 수 있습니까? – Anoop

0
elem.onclick = function(e) { 
    e = e || window.event; 
    if (e.stopPropagation) { 
     e.stopPropagation(); 
    } else { 
     e.cancelBubble = true; 
    } 
}; 

http://jsfiddle.net/WnSjb/

+0

나는 그것을 멈추는 법을 안다. 나는 또한 이벤트 버블 링을 멈추는 방법에 대한 방법에 대한 언급을했다. 당신은 객체로부터'event' 또는'window.event' 객체를 가져와 그것을 버블 링에서 멈추도록해야합니다. 나는 그것을 포착하고 싶다 !!! –

+1

@VivekChandra 원래 코드에는 몇 가지 실수가 있습니다. 우선, 이벤트 리스너를 추가하지 않고 함수를 정의하는 것입니다. 둘째, 이벤트 객체는 함수의 첫 번째 인수로 전송됩니다. 따라서,'.onclick = function (bar, event) {}'가 있다면 인수가 보내지면'bar'가 이벤트 객체가됩니다. 인수는 하나만 전달되기 때문에 나머지는'undefined '입니다. – Esailija

관련 문제