3

我正在使用数据表插件来显示表格。在我设置的配置参数bJQueryUI : true中,表格应用了我正在使用的当前 jQuery UI 样式的样式。在最后一列中,我添加了一些图标来对行执行操作。问题是数据表图标和标题上的悬停事件仅在 Firefox 中有效,在 Chrome 或 IE 中不会触发该事件。

我正在使用的代码是这样的:

$('.ui-state-default').live({ 
    mouseenter:
         function(){ $(this).addClass('ui-state-hover'); },
    mouseleave:
         function(){ $(this).removeClass('ui-state-hover'); }
});
4

1 回答 1

2

您是否在开发者工具中检查了要悬停的区域中元素的分层?您应该检查项目的 z-index 以确保.ui-state-default元素位于顶部。

你也应该换掉.live(). .delegate()它们是相似的,但您可以使用根元素设置根元素,.delegate()并且.live()根元素始终是document元素:

$(<root element>).delegate('.ui-state-default', 'mouseenter', function () {...}).delegate('.ui-state-default', 'mouseleave', function () {...});

.live()自 jQuery 1.7 起已贬值。从 jQuery 1.7 开始,有一个新函数被调用.on(),它的作用与两者相同.bind().delegate()具体取决于所使用的语法: http: //api.jquery.com/on

于 2011-12-14T18:02:12.180 回答