jQuery 선택기를 사용하여 잡은 요소 집합에 mouseenter 및 mouseleave 용 핸들러를 바인딩하려고합니다. 함수는 요소의 자식에 대해 작동해야합니다.요소의 자식에 영향을주는 jQuery 객체의 요소에 핸들러 바인딩
여기 내 코드입니다 :
$(document).ready(function(){
$(".topnav-link").bind("mouseenter mouseleave", function() {
$(this).children(".topnav").toggle();
});
});
와 HTML의 본문에 :
<ul id="nav">
<li>
<a class="topnav-link" href="some-url">
<img class="topnav" src="nav-about-us.png" />
<img class="topnav hidden" src="/images/site/nav-about-us-on.png" />
</a>
</li>
<li>
<a class="topnav-link" href="some-url'}">
<img class="topnav" src="nav-products.png" />
<img class="topnav hidden" src="/images/site/nav-products-on.png" />
</a>
</li>
<li>
<a class="topnav-link" href="some-url">
<img class="topnav" src="nav-contact.png" />
<img class="topnav hidden" src="/images/site/nav-contact-on.png" />
</a>
</li>
</ul>
이 실제로에서 잘 작동 맥/승/FF/사파리하지만 IE6과 IE8에, $(".topnav-link")
선택자가 가져온 첫 번째 요소 만 원하는 동작을 표시합니다.
제가 누락 된 부분에 대해 도움을 주셔서 감사합니다!
그냥 경고 ('이벤트 발생')와 같은 간단한 작업을 수행 할 수 있습니까? bind 함수 내부에서 첫 번째 요소가 이벤트를 시작하는지 확인하십시오. –
원하는 동작을 오해하지 않는 한, 위의 예제는 IE8에서 저에게 잘 작동합니다. jsbin.com/axuve/edit#output – Matt
둘 다 살펴보고 의견을 보내 주셔서 감사합니다. 매트, 당신의 jsbin 예제를 본 후, 나는 다른 곳에서 사냥해야한다는 것을 깨달았습니다. 제 행동이 왜 나타나지 않았는 지요. 어리석은 느낌이 들지만 PNG에 사용했던 수정 사항이 첫 번째 링크의 내용을 제외한 모든 항목에 불완전하게 적용되어 올바르게 변경되지 않은 경우에도 영향을 미쳤습니다. 다시 한 번 감사드립니다. – akc