jquery直播悬停不起作用

时间:2010-11-18 20:15:50

标签: jquery

由于鼠标悬停和鼠标移动,我在IE上遇到了一些下拉闪烁问题,所以我更改了代码 悬停和生活,因为数据是来自ajax的动态。

但是下面的代码不起作用,我也得到了最新的jquery。

以下代码正在执行而没有错误但无法正常工作

$('.cs-rec').live("hover",
        function() {       
        $(this).find('.cs-title').css('text-decoration','underline');
        },
        function() {
         $(this).find('.cs-title').css('text-decoration','none');
        }
    );   

5 个答案:

答案 0 :(得分:3)

如果您不需要IE6支持,请绝对使用@ patrick的解决方案。

如果你必须支持它:.live()没有2个方法重载你需要像这样拆分:

$('.cs-rec').live("mouseenter", function() {       
  $(this).find('.cs-title').css('text-decoration','underline');
}).live("mouseleave", function() {
  $(this).find('.cs-title').css('text-decoration','none');
});   

或者,jQuery 1.4.3+中的(虽然它不在文档中)可以拍摄地图,如下所示:

$('.cs-rec').live({
  mouseenter: function() {       
    $(this).find('.cs-title').css('text-decoration','underline');
  },
  mouseleave: function() {
    $(this).find('.cs-title').css('text-decoration','none');
  }
});

答案 1 :(得分:1)

您是否有理由不使用CSS? IE6不起作用,但大多数其他人都会这样做。

.cs-red .cs-title {
    text-decoration: none;
}
.cs-red:hover .cs-title {
    text-decoration: underline;
}

编辑:查看您的网站,如果它是您正在谈论的导航区域,您可以调整标记,以便每个{{1}内都有<a>它被扩展到<li>的整个宽度和高度。

这样可以支持IE6(将<li>放在:hover上)。

答案 2 :(得分:1)

绑定到悬停是可能的,但很棘手:

  

从jQuery 1.4.1开始,悬停事件可以   被指定(映射到mouseenter   和mouseleave,反过来,是   映射到mouseover和mouseout)。

您必须使用单个方法,然后根据事件类型切换行为(代码示例也来自jQuery文档):

$('.hoverme').live('hover', function(event) {
    if (event.type == 'mouseenter') {
        // do something on mouseover
    } else {
        // do something on mouseout
    }
});

答案 3 :(得分:1)

$('.edit_hover').live('hover', function(event) {
  if (event.type == 'mouseenter') {
    // first function here
  } else {
    // second function here
  }
});

答案 4 :(得分:0)

这是真的......

$("#your_div_id").live('mouseover',function(){

    $(this).find(".child_div").css('background-color','#111111');

}).live('mouseout',function(){

     $(this).find(".child_div").css('background-color','#757575');
});