我正在使用以下jquery代码来显示我们用鼠标悬停的表行的上下文删除按钮。这适用但不适用于已随时添加js / ajax的行...
有没有办法让这项工作与直播活动合作?
$("table tr").hover(
function () {},
function () {}
);
答案 0 :(得分:245)
jQuery 1.4.1现在支持live()事件的“悬停”,但只支持一个事件处理函数:
$("table tr").live("hover",
function () {
});
或者,您可以提供两个函数,一个用于mouseenter,另一个用于mouseleave:
$("table tr").live({
mouseenter: function () {
},
mouseleave: function () {
}
});
答案 1 :(得分:110)
$('.hoverme').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
});
答案 2 :(得分:59)
.live()
已被弃用
改用.on()
并指定后代选择器
$("table").on({
mouseenter: function(){
$(this).addClass("inside");
},
mouseleave: function(){
$(this).removeClass("inside");
}
}, "tr"); // descendant selector
答案 3 :(得分:5)
从jQuery 1.4.1开始,悬停事件与live()
一起使用。它基本上只是绑定到mouseenter和mouseleave事件,你也可以使用1.4.1之前的版本:
$("table tr")
.mouseenter(function() {
// Hover starts
})
.mouseleave(function() {
// Hover ends
});
这需要两个绑定,但同样有效。
答案 4 :(得分: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");
}
});
答案 5 :(得分:2)
警告:实时版本的悬停会对性能造成严重影响。在IE8的大页面中尤其明显。
我正在开发一个用AJAX加载多级菜单的项目(我们有理由:)。无论如何,我使用了实时方法来悬停,这在Chrome上运行得很好(IE9做得不错,但不是很好)。然而,在IE8中它不仅减慢了菜单的速度(你必须在它丢弃之前悬停几秒钟),但页面上的所有内容都非常缓慢,包括滚动甚至检查简单的复选框。
在加载事件后直接绑定事件会产生足够的性能。