Jquery:在父级悬停时更改子图像href源的一部分

时间:2011-04-21 10:03:58

标签: jquery jquery-hover

嗨,我有这段HT​​ML ...

<a href="alcohol_calculator.php" class="swfselector">
&raquo; Alcohol unit calculator prototype 
 <img class="tab" src="/images/1.png" width="30" height="28" alt="1" />
 <img class="tab" src="/images/2.png" width="30" height="28" alt="2" />
 <img class="tab" src="/images/3.png" width="30" height="28" alt="3" /> 
 <img class="tab" src="/images/5.png" width="30" height="28" alt="5" />
</a>

<a href="bouncing_ball.php" class="swfselector">
&raquo; Bouncing ball animation 
 <img class="tab" src="/images/3.png" width="30" height="28" alt="3" />
</a>

使用Jquery我想要它,以便当有人在“swfselector”类上盘旋时,所有带有类选项卡的子图像都有一个'o'添加到他们的src ...例如(/images/2o.png或/图像/ 3.png /).

到目前为止,我有这个,但它什么也没做,反正将“o”添加到“.png”之后。

$('.swfselector').each.hover(function(){
  $(this).find('.tab').attr('src'+'o'); 
});

帮助表示赞赏。

3 个答案:

答案 0 :(得分:2)

$('.swfselector').each.hover(function(){ 
     $(this).find('.tab').each(function() {
          $(this).attr("src", 
               $(this).attr("src").replace(".png", "o.png"));  
     })
}); 

答案 1 :(得分:2)

这对你有用

    var done1 = 0;
$('a.swfselector1').live('hover', function() {
    if(done2 != 1){
        $(this).find('.tab').each(function() {
            $(this).attr("src", 
            $(this).attr("src").replace(".png", "o.png"));  
            done1 = 1;
         })
     }
});
var done2 = 0;
$('a.swfselector2').live('hover', function() {
    if(done2 != 1){
        $(this).find('.tab').each(function() {
            $(this).attr("src", 
            $(this).attr("src").replace(".png", "o.png"));  
            done2 = 1;
         })
     }
});

不幸的是,我发现这样做的最简单方法是更改​​具有悬停功能的多个a标记的a标记的类名。基本上在swfselector的末尾添加一个数字。然后快速创建一个新的jQuery事件。

如果我还没有说清楚,请看一下this jsFiddle,这将更容易理解。

最终结果(与乔治联合工作):

$('.swfselector').live('mouseover mouseout', function() {
if (event.type == 'mouseover') {
    $(this).find('.tab').each(function() {
        $(this).attr("src", $(this).attr("src").replace(".png", "o.png")); 
    }) 
} //end of if
    else { 
           $(this).find('.tab').each(function() {
            $(this).attr("src", $(this).attr("src").replace("o.png", ".png")); 
            }) 

    }//end of else

});//end of mouseover/mouseout

答案 2 :(得分:0)

认为这应该有效:

$('.swfselector').each.hover(function(){
  $('img.tab', this).each(function () {
    var src_parts = this.src.split('.');//divide src by '.' symbol

    src_parts[src_parts.length - 2] += 'o';//add 'o' before extension '.'
    this.src = src_parts.join('.');//join back src with 'o'
  }
});