jQuery的生活hover
我正在使用下面的jQuery代码来显示一个上下文删除button,只有我们用鼠标hover的表格行。 这工作,但不是已经添加了js / ajax飞行中的行…
有没有办法让这个工作与现场活动?
$("table tr").hover( function () {}, function () {} );
jQuery 1.4.1现在支持live()事件的“hover”,但只支持一个事件处理函数:
$("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()
来代替并指定后代select器
$("table").on({ mouseenter: function(){ $(this).addClass("inside"); }, mouseleave: function(){ $(this).removeClass("inside"); } }, "tr"); // descendant selector
从jQuery 1.4.1开始,hover事件与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"); } });
警告:hover的实时版本有显着的性能损失。 在IE8的大页面上尤其显着。
我正在做一个项目,我们用AJAX加载多级菜单(我们有我们的理由:)。 无论如何,我用在Chrome上工作的hover的活方法(IE9没有,但不是很好)。 但是,在IE8中,它不但减慢了菜单的速度(你必须在几秒钟之前hover),但是页面上的所有内容都很慢,包括滚动,甚至检查简单的checkbox。
装载后直接绑定事件导致了足够的性能。