jquery - 悬停链接时更改内容 div

标签 jquery css hover

对于一个商业网站,我试图实现以下目标: - 包含客户评价的 div。 - 包含这些客户 Logo 的列表。

当用户将鼠标悬停在 Logo 上时,正确的评价应显示在 div 中。

我有以下标记:

<div id="testimonial-container"><div class="testimonial">Here comes a testimonial</div>
    <div class="testimonial">Here comes another testimonial</div>
    <div class="testimonial">And another one</div>
    <ul class="testimonial-logos">
       <li><a><img src="logo-1.jpg" /></a></li>
       <li><a><img src="logo-2.jpg" /></a></li>
       <li><a><img src="logo-3.jpg" /></a></li>
    </ul>
</div>

悬停效果将使用 CSS 完成(不透明度:0 和 1),因此它并不是真正的 slider 。

要将类添加到事件推荐中,我使用以下代码:

jQuery('#testimonial-container .testimonial-logos a').hover(function(){
    jQuery('#testimonial-container .testimonial, #testimonial-container .testimonial-logos a').addClass('active');
});

有什么想法如何切换 div 中的推荐吗?提前致谢!

最佳答案

假设推荐的顺序与相应 Logo 的顺序相同,那么类似的内容将起作用(放置在文档就绪处理程序中或正文末尾的脚本 block 中):

var $container = $("#testimonial-container"),
    $testimonials = $(".testimonial", $container).hide();

$(".testimonial-logos li", $container).hover(function() {
    $testimonials.eq( $(this).addClass("active").index() ).show();
}, function() {
    $testimonials.eq( $(this).removeClass("active").index() ).hide();
});

演示: http://jsfiddle.net/YG5aV/3

这会缓存一个包含推荐 div 的 jQuery 对象,并立即将它们全部隐藏。然后在悬停处理程序中,当鼠标进入时,它会显示与悬停的 Logo 相对应的 Logo ,当鼠标离开时,它会再次隐藏它。

更新:如果目的是仅在鼠标输入而不是鼠标输入离开时执行某些操作,那么我建议使用 .mouseenter() 而不是 .hover() 因为后者是分配进入处理程序和离开处理程序的快捷方式。以下内容执行您在评论中描述的操作 - 请注意末尾的 .eq(0).mouseenter() ,它会触发第一个 li 元素的 mouseenter,以便它将成为事件元素开始于。

var $container = $("#testimonial-container"),
    $testimonials = $(".testimonial", $container).hide(),
    $prev;

$(".testimonial-logos li", $container).mouseenter(function() {
    if ($prev)
       $testimonials.eq( $prev.removeClass("active").index() ).hide();
    $testimonials.eq( ($prev = $(this).addClass("active")).index() ).show();
}).eq(0).mouseenter();

演示:http://jsfiddle.net/YG5aV/4/

关于jquery - 悬停链接时更改内容 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225647/

相关文章:

javascript - 如何在 javascript 中将 jquery 数组转换为字符串数组

javascript - jquery检查所有 child 的高度

CSS 扩展 div 向右浮动 div

jquery - CSS:向左浮动和向左溢出

Css 在悬停时显示我的导航

javascript - 使光标在计时器上透明(0.5)

javascript - 如何从网页和模板中引用 NPM 安装的库?

jquery - CSS 悬停在图像上的效果不起作用

javascript - 如何检测鼠标是否位于 jQuery 或 Javascript 中的项目上

jquery - 当我将鼠标悬停在其他元素上时,更改所有先前 <li> 的 CSS 类