2012-09-24 2 views
2

jQuery를 사용하여 n00b로이 질문을 이해하시기 바랍니다.event.stopPropagation을 실행 취소 할 수 있습니까

중첩 테이블로 만든 메뉴가 있습니다. 때때로 나는 그것을 무능하게하고 싶다. (모래 시계 커서 표시 등)

각 메뉴 항목은 실제로는 <td>입니다. 다행히도 내부의 <td>은 클릭 이벤트에 응답하므로 에 event.stopPropagation()을 적용하면 외부의 <td>을 식별 할 수있어 메뉴 항목이 클릭에 응답하지 않습니다.

하지만 상황에 따라 철회하고 싶습니까? 매달다? 끄르다? 끄다? stopPropagation()이므로 내부 <td>의 클릭 핸들러는 클릭 이벤트를 다시 봅니다. 나는 click 이벤트가 다시 거품이되도록하고 싶다.

이렇게하려면 외부의 <td>에있는 "실행 취소"를하고 싶습니다. 이것은 가능해야합니다, 그렇지? 내가 이것을 할 수있는 방법을 찾을 수 없다는 사실은 내가이 문제에 접근하는 방식에 뭔가 잘못된 것이있을 수 있음을 말해 준다.

그래서, 방법이 있습니까? 그리고 그렇지 않다면 내가 잘못 생각하고 있습니까? 감사.

Paragram

<td onclick="javascript: myhandler();"><table><tr> 
<td class="menuitems">Menu Item</td></tr></table></td> 
+0

당신이 코드의 더 큰 샘플을 보여줄 수 <td>의의 클래스를 제외하려면 event.stopPropagation() 전에 .not(".class_to_exclude")을 추가하려고 제안 할 수 있습니다 'stopPropagation()'을 호출하는 부분을 포함해서? 바깥 쪽 요소에서 전달을 중지 할 경우 내부 요소는 click 이벤트를 표시합니다. (또한 jQuery를 사용할 때 인라인 onclick 핸들러가있는 이유는 무엇입니까?) – nnnnnn

답변

0

당신은 조건부 event.stopPropagation()를 넣을 수 있습니다.

버블 링을 멈추고 싶을 때마다 명령문이 실행되는지 확인하십시오. 일치하는 경우에는 실행되지 않도록하십시오.

어떤 상황에서 실행 취소 할 수있는 방법이 있습니다. event.stopPropagation() 그런데 왜 이렇게하지 않습니까 ??

0

코드를 보지 않고, 나는 http://jsfiddle.net에서 아마도

관련 문제