2010-07-28 3 views
0

코드를 계속 유지하기 위해 jQuery에서 정규 표현식을 사용하여 이미지의 호버 안에서 켜기/끄기 상태를 전환하려고합니다.regex를 사용하여 하위 요소 이미지를 off에서 on 및 back으로 변경

jQuery를 :

$(function(){ 
    $("ul.dropdown li").hover(function(){ 
    $(this).addClass("hover"); 
    $('ul:first',this).css('visibility', 'visible'); 

    }, function(){ 
    $(this).removeClass("hover"); 
    $('ul:first',this).css('visibility', 'hidden'); 
    }); 
}); 

HTML :

<ul class="dropdown"> 
    <li><a href=""><img src="images/nav_first_off.png" /></a> 
    <ul class="sub_menu sub1"><li> 
     <div class="topnav_dropdown_left"><a href=""><img src="images/topnav_dropdown_first.jpg" /></a></div> 
    </li></ul> 
    </li> 
    <li><a href=""><img src="images/nav_second_off.png" /></a> 
    <ul class="sub_menu sub2"><li> 
     <div class="topnav_dropdown_left"><a href=""><img src="images/topnav_dropdown_second.jpg" /></a></div> 
    </li></ul> 
    </li> 
    <li><a href=""><img src="images/nav_third_off.png" /></a> 
    <ul class="sub_menu sub3"><li> 
     <div class="topnav_dropdown_left"><a href=""><img src="images/topnav_dropdown_third.jpg" /></a></div> 
    </li></ul> 
    </li> 
</ul> 

따라서 후속 nav_first_off.png 변경 위에 마우스 오버 기능을 사용하여 리튬 호버와 nav_second_off.png 및 잘라 정규식을 사용하여 함께 _off.png로 전환하고 _on.png로 전환하십시오.

도움을 주시면 고맙겠습니다.

기능에
$(function(){ 
    $("ul.dropdown li").hover(function(){ 
    $(this).addClass("hover");}); 
    $('ul:first',this).css('visibility', 'visible'); 
    $('a img', this).attr('src', function(i, src) { 
     return src.replace('_off','_on'); 
    }); 
}, function(){ 
    $(this).removeClass("hover"); 
    $('ul:first',this).css('visibility', 'hidden'); 
    $('a img', this).attr('src', function(i, src) { 
     return src.replace('_on','_off'); 
    }); 
    }); 
}); 

function(i, src)src 매개 변수는 이전 src 값이다, 그래서 우리는 단지 .replace()을하고있는 :

당신은 .attr()에 함수를 전달할 수
+0

중복 질문,이 질문에 대한 답변은 StackOverflow에 있습니다. – skyfoot

+1

ehm ... 어디서? 참고 문헌이 유용 할 것입니다. – MvanGeest

답변

0

이처럼 src 속성을 변경하려면 당신이 필요하다면 더 복잡한 정규 표현식을 전달할 수 있습니다.

+0

매력처럼 작동합니다! 감사합니다. 저는 항상 속도 히트에 관해서는 정규식을 사용하지 않으려 고합니다.하지만 확실하지는 않습니다. 선택기를 지나치게 생각하고있었습니다. –

+0

@Chris - 환영합니다 :) 도움이 된 옆의 체크 표시를 통해이 질문과 향후 질문에 대한 대답을 수락하십시오! –

관련 문제