코딩 질문드립니다.
<nav id="gnb">
<menu>
<li class="gnb on"><a href="#"><img src="a01_off.png" onmouseover="this.src='a01_off_on.png'" onmouseout="this.src='a01_off_off.png'"></a>
<ul class="submenu">
<li class="on"><a href="#"><img src="b01_off.png"></a></li>
</ul>
</li>
<li class="gnb on"><a href="#"><img src="a02_off.png" onmouseover="this.src='a02_off_on.png'" onmouseout="this.src='a02_off_off.png'"></a>
<ul class="submenu">
<li class="on"><a href="#"><img src="b02_off.png"></a></li>
</ul>
</li>
</menu>
</nav>
이런 메뉴바가 있습니다.
js 파일에 관련된 부분이 아마도 이부분인거 같습니다.
$(document).ready(function() {
// gnb
$("#gnb li.gnb").hover(function() {
$("#gnb .submenu").hide();
$(this).find(".submenu").slideDown();
}, function() {
$("#gnb .submenu").slideUp();
});
});
그런데 이건 그냥 서브메뉴 슬라이드 부분인거 같고, 제가 표현하고 싶은건 마우스가 서브메뉴에 가도 상위 메뉴 이미지가 _on.png로 유지되는 스크립트를 작성하고 싶습니다.
// gnb
$("#gnb li.gnb ul.submenu").hover(function() {
$(this).parent().parent("img").attr("src", $(this).parent().parent("img").attr("src").replace("_off", "_on"));
});
이렇게 해봤는데 도저히 안되더라구요..
고수님들 조언 부탁드립니다.
<menu>
<li class="gnb on"><a href="#"><img src="a01_off.png" onmouseover="this.src='a01_off_on.png'" onmouseout="this.src='a01_off_off.png'"></a>
<ul class="submenu">
<li class="on"><a href="#"><img src="b01_off.png"></a></li>
</ul>
</li>
<li class="gnb on"><a href="#"><img src="a02_off.png" onmouseover="this.src='a02_off_on.png'" onmouseout="this.src='a02_off_off.png'"></a>
<ul class="submenu">
<li class="on"><a href="#"><img src="b02_off.png"></a></li>
</ul>
</li>
</menu>
</nav>
이런 메뉴바가 있습니다.
js 파일에 관련된 부분이 아마도 이부분인거 같습니다.
$(document).ready(function() {
// gnb
$("#gnb li.gnb").hover(function() {
$("#gnb .submenu").hide();
$(this).find(".submenu").slideDown();
}, function() {
$("#gnb .submenu").slideUp();
});
});
그런데 이건 그냥 서브메뉴 슬라이드 부분인거 같고, 제가 표현하고 싶은건 마우스가 서브메뉴에 가도 상위 메뉴 이미지가 _on.png로 유지되는 스크립트를 작성하고 싶습니다.
// gnb
$("#gnb li.gnb ul.submenu").hover(function() {
$(this).parent().parent("img").attr("src", $(this).parent().parent("img").attr("src").replace("_off", "_on"));
});
이렇게 해봤는데 도저히 안되더라구요..
고수님들 조언 부탁드립니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 5개
parent를 써서 상위로 가버리면 어쩝니까? children으로 하위로 가야 이미지에 도달하죠
어쨌던 this가 이미지를 직접 가리키도록 이렇게 해보세요
$('.submenu img').hover(function(){
$(this).attr('src', $(this).attr('src').replace('_off','_on') )
},function(){ $(this).attr('src', $(this).attr('src').replace('_on','_off'))
});
균이님께서 알려주신대로 해도 그대로네요. 도데체 뭐가 문제인지..ㅜ_ㅜ
이렇게 해보세요
$(".submenu").hover(function() { obj=$(this).siblings().eq(0).children();
obj.attr("src",obj.attr("src").replace("_off", "_on"));
}, function(){ obj.attr("src",obj.attr("src").replace("_on", "_off"));
});
또는
$(".submenu").hover(function() { obj=$(this).siblings(':first').children();
obj.attr("src",obj.attr("src").replace("_off", "_on"));
}, function(){ obj.attr("src",obj.attr("src").replace("_on", "_off"));
});
역시 균이님이십니다..
정말 감사합니다..(--)(__)