使用jquery,如何在悬停链接时更改图像?

时间:2009-09-08 20:25:44

标签: jquery image hyperlink hover

我有一个链接列表(文本菜单),我需要在每个链接悬停时更改其他区域中的图像...

图像需要在同一个地方显示,让我们说右边的100x100区域...... 有什么想法实现这个目标吗?

每个链接都有图像的src吗?不知道怎么做:(

5 个答案:

答案 0 :(得分:0)

不是一个完整的答案,但这将指导您找到真正的解决方案。

$("a")
  .hover( function(){ $("#some-div").css( "background", "my-image.jpg" ) );

答案 1 :(得分:0)

您可以将图像的src存储在a?

上的rel标记中
<a href="#" rel="../images/myPicture.jpg">Anchor Link</a>

然后使用elcuco的解决方案,但稍有改动。

$("a")
  .hover( function(){ $("#some-div").css( "background", $(this).attr('rel') ) );

答案 2 :(得分:0)

给出以下HTML:

<ul>
  <li><a href="#" id="link1">Link Number 1</a></li>
  <li><a href="#" id="link2">Link Number 2</a></li>
  <li><a href="#" id="link3">Link Number 3</a></li>
  <li><a href="#" id="link4">Link Number 4</a></li>
  <li><a href="#" id="link5">Link Number 5</a></li>
</ul>
<ul>
  <li><img src="image1.jpg" /></li>
  <li><img src="image2.jpg" /></li>
  <li><img src="image3.jpg" /></li>
  <li><img src="image4.jpg" /></li>
  <li><img src="image5.jpg" /></li>
</ul>

使用以下JavaScript(使用jQuery):

$(function(){
  $(".images img").hide();
  $(".links a").hover(function(){
    $(".images img").hide();
    $("#image"+/(\d+)$/.exec(this.id)[1]).show();
  }, function(){
    $(".images img").hide();
  });
});

答案 3 :(得分:0)

假设每个链接都包含要显示的图像的href,并且可以通过类识别,例如link-image。此外,假设显示区域设置为固定ID imageDisplay

$('a.link-image').hover(
    function() {
        $('#imageDisplay').children().remove();
        $('<img src="' + $(this).attr('href')  + '" alt="" />')
           .css( { height: 100, width: 100 } )
           .appendTo( '#imageDisplay' );
    },
    function() {
        $('#imageDisplay').children().remove();
        $('<span>No image available</span>').appendTo( '#imageDisplay' );
    }
);

您可能实际上想要使用hoverIntent插件来防止鼠标在链接上移动时闪烁。

通常情况下,您可以通过链接上的单击处理程序将其与禁用默认链接行为相结合。

$('a.link-image').click( function() { return false; } );

请注意,您只需将点击处理程序链接到悬停处理程序即可。

答案 4 :(得分:0)

如果它不是语义,只用于演示,我会使用类和CSS。

$('.imageList li').hover(
function() {
    $('#imageDisplay').addClass($(this).attr("class"););
},
function() {
    $('#imageDisplay').removeClass($(this).attr("class"););
}
);

MARKUP

<ul class="imageList">
    <li class="deer">Show me a deer</li>
    <li class="cow">Show me a cow</li>
</ul>
<div id="imageDisplay" />

CSS

#imageDisplay {
   width:200px;
   height:200px;
}
div.deer {
   background:red;
}
div.cow {
   background:blue;
}