코딩 질문드립니다.

· 2013-07-24 (수) 21:41:17 · 1120 · 5
<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"));
});

이렇게 해봤는데 도저히 안되더라구요..

고수님들 조언 부탁드립니다.
|

댓글 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'))
});
아뇨 섭이미지를 변환하는게 아니라 섭메뉴에 마우스를 올려도,즉 메인메뉴에서 마우스를 아웃해도 하위 섭메뉴에만 마우스가 올라가 있으면 메인메뉴가 on상태로 계속 유지되는게 포인트입니다. 그래서 제 짧은 생각에는 parent로 올라가서 off상태인 메인메뉴 이미지를 on 상태로 만들어야 할꺼 같아서 저렇게 쓴거구요..;
균이님께서 알려주신대로 해도 그대로네요. 도데체 뭐가 문제인지..ㅜ_ㅜ
아, 질문을 잘못 이해했습니다
이렇게 해보세요
$(".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"));
});
우와~~
역시 균이님이십니다..
정말 감사합니다..(--)(__)
균이님 한가지만 더 여쭤볼께요. 이렇게 하니까 원래 on되어있던 메뉴도 서브메뉴에서 마우스가 빠져나가니 off로 바뀌는데 이건 어떻게 해야하나요..;; 계속 혼자 삽질하다가 또 막혀서 어쩔수 없이 질문드립니다..ㅜ_ㅜ if문을 중간에 넣으니 슬라이드 자체가 안내려오는데 그건 제가 뭔가 잘못 써서 그런거겠죠..;
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
13-07-25 조회 887
13-07-25 조회 2,371
13-07-25 조회 946
13-07-25 조회 2,087
13-07-25 조회 1,239
13-07-25 조회 1,400
13-07-25 조회 1,075
13-07-24 조회 1,104
13-07-24 조회 857
13-07-24 조회 1,121
13-07-24 조회 1,422
13-07-24 조회 1,707
13-07-24 조회 1,042
13-07-24 조회 1,045
13-07-24 조회 832
13-07-24 조회 1,706
13-07-24 조회 961
13-07-24 조회 1,640
13-07-24 조회 1,636
13-07-24 조회 1,070