2013-03-01 2 views
2

이 작업을 수행하지 못했습니다. 내 정확한 상황에 가지 않고 왜 내가하고있는 일을하려고하는지, 기본적인 요약은 다음과 같습니다.자식 요소에 mouseenter가있을 때 부모에서 mouseleave를 트리거하지 않는 방법은 무엇입니까?

부모 안에 4 개의 요소 하위 요소가 있습니다. 나는 현재 때문에 어린이들에게 mouseenter 부착 오전 : 그럼 난

$('.parent').on('mouseleave', function() { 
    hideSameSomething(); 
}); 

을 말하려고하지만거야

$('.parent').on('mouseenter', '.child', function() { 
    showSomething(); 
}); 

을 아이의 mouseenter 부모에 mouseleave를 발생하고 심한 깜박임을 만들 때 . 나는 자식 핸들러에서 e.stopPropagation()을 시도했지만 행운은 없다. 부모 요소를 입력하지 않을 때 어떤 방법으로 부모를 발동시키지 않는지, 부모를 떠나야 만 할 것인가? 감사.

답변

2

둘을 하나로 결합 해보십시오.

공식 문서 : http://api.jquery.com/on/#on-events-selector-data

$(".parent, .child").on({ 
    mouseenter: function() { 
     // Handle mouseenter... 
    }, 
    mouseleave: function() { 
     // Handle mouseleave... 
    } 
}); 
+0

. 이벤트를 부모가 마우스를 꽂을 때 부모가 해고하지 않고 별도로 처리하기를 원합니다. – Matt

+0

나는 그가 다음과 같이 말하고 싶어한다고 생각한다 :'$ (". parent, .child")' – Arthur

1

시도 : 외아들로 이벤트를 바인딩 것

$('.parent .child').on("mouseenter", function() { 

    showSomething(); 

    $(this).closest('.parent').on("mouseleave", function() { 
     hideSameSomething(); 
    }); 

}); 
관련 문제