jquery – 在一组img上取消绑定悬停事件

我有一组图像有问题.我的目的是在您悬停缩略图时显示相关图像,并在您滚动图像时隐藏它.问题是我需要在模块设计的悬停上加上延迟(),有3列,很难到达中间列的图像.此延迟使悬停排队,显示其他与您悬停的其他拇指相关的图像.这是标记:

<ul id="module">
  <li>
     <a href="#">
      <img src="thumbnail-image-1.jpg"> 
      <img src="image-1.jpg">
    </a>
  </li>
  <li>
    <a href="#">
      <img src="thumbnail-image-2.jpg"> 
      <img src="image-2.jpg">
    </a>
  </li>
  ...
</ul>

这是js:

$('#module li a').each(function(i){
    $_imgs = $(this).find('img');
    $_imgs.eq(0).mouseover(function() {
        $(this).next().delay(800).fadeIn('slow');
    });
    $_imgs.eq(1).mouseout(function() {
        $(this).fadeOut('slow');
    });
});

我认为解决方案来自于放置一个unbind()……
谢谢.

最佳答案 我将.tn类添加到缩略图中,但如果需要,可以将其更改为.eq解决方案.

Javascript(需要jQuery 1.7)

$(function(){

    var timeout = false;

    $('#module > li').on('hover', 'a', function(e){
        var $elem = $(this).find('.tn');
        if(e.type == 'mouseenter'){
            timeout = setTimeout(function(){
                $elem.fadeIn();
            }, 800);   
        }
        else{
            timeout && clearTimeout(timeout);
            $elem.stop().fadeOut();
        }
    });

});

看到它在这里工作:
http://jsfiddle.net/aX836/

点赞