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