jquery直播悬停

Jor*_*rre 162 jquery live jquery-1.4

我正在使用以下jquery代码来显示我们用鼠标悬停的表行的上下文删除按钮.这适用但不适用于已随js/ajax添加的行...

有没有办法让这个工作与现场活动?

$("table tr").hover(
  function () {},
  function () {}
);
Run Code Online (Sandbox Code Playgroud)

Phi*_*ert 245

jQuery 1.4.1现在支持live()事件的"悬停",但只支持一个事件处理函数:

$("table tr").live("hover",

function () {

});
Run Code Online (Sandbox Code Playgroud)

或者,您可以提供两个函数,一个用于mouseenter,另一个用于mouseleave:

$("table tr").live({
    mouseenter: function () {

    },
    mouseleave: function () {

    }
});
Run Code Online (Sandbox Code Playgroud)

  • 从jQuery 1.4.2开始,.live("hover")相当于.live("mouseover mouseout"),而不是.live("mouseenter mouseleave") - 请参阅http://bugs.jquery.com/ticket/6077所以,做.live("mouseenter mouseleave",function(){...})或.live("mouseenter",function(){...}).live("mouseleave",function(){. ..}) (34认同)
  • 根据[JQuery` .live`文档页面](http://api.jquery.com/live/),它说使用`.on`代替."从jQuery 1.7开始,不推荐使用.live()方法.使用.on()附加事件处理程序." (3认同)
  • 谢谢@aem,这对我有用:$("table tr").live("mouseenter",function(){...}).live("mouseleave",function(){...}); (2认同)

dmi*_*tko 110

$('.hoverme').live('mouseover mouseout', function(event) {
  if (event.type == 'mouseover') {
    // do something on mouseover
  } else {
    // do something on mouseout
  }
});
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/live/


And*_*dre 59

.live() 自jQuery 1.7起已被弃用

.on()改为使用并指定后代选择器

http://api.jquery.com/on/

$("table").on({
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
}, "tr");  // descendant selector
Run Code Online (Sandbox Code Playgroud)

  • 这在jquery 1.9中完美无缺.所有现场和代表解决方案都已弃用!如果有人能够接受接受的答案并接受这个答案,那将是非常棒的. (6认同)

Tat*_*nen 5

从jQuery 1.4.1开始,悬停事件可以使用live().它基本上只是绑定到mouseenter和mouseleave事件,你也可以使用1.4.1之前的版本:

$("table tr")
    .mouseenter(function() {
        // Hover starts
    })
    .mouseleave(function() {
        // Hover ends
    });
Run Code Online (Sandbox Code Playgroud)

这需要两个绑定,但也可以.


Jor*_*ona 5

此代码有效:

    $(".ui-button-text").live(
        'hover',
        function (ev) {
            if (ev.type == 'mouseover') {
                $(this).addClass("ui-state-hover");
            }

            if (ev.type == 'mouseout') {
                $(this).removeClass("ui-state-hover");
            }
        });
Run Code Online (Sandbox Code Playgroud)

  • 什么是"ui-state-hover"?这如何适用于用户的原始问题? (2认同)