由于鼠标悬停和鼠标移动,我在IE上遇到了一些下拉闪烁问题,所以我更改了代码 悬停和生活,因为数据是来自ajax的动态。
但是下面的代码不起作用,我也得到了最新的jquery。
以下代码正在执行而没有错误但无法正常工作
$('.cs-rec').live("hover",
function() {
$(this).find('.cs-title').css('text-decoration','underline');
},
function() {
$(this).find('.cs-title').css('text-decoration','none');
}
);
答案 0 :(得分:3)
如果您不需要IE6支持,请绝对使用@ patrick的解决方案。
如果你做必须支持它:.live()
没有2个方法重载你需要像这样拆分:
$('.cs-rec').live("mouseenter", function() {
$(this).find('.cs-title').css('text-decoration','underline');
}).live("mouseleave", function() {
$(this).find('.cs-title').css('text-decoration','none');
});
或者,jQuery 1.4.3+中的(虽然它不在文档中)可以拍摄地图,如下所示:
$('.cs-rec').live({
mouseenter: function() {
$(this).find('.cs-title').css('text-decoration','underline');
},
mouseleave: function() {
$(this).find('.cs-title').css('text-decoration','none');
}
});
答案 1 :(得分:1)
您是否有理由不使用CSS? IE6不起作用,但大多数其他人都会这样做。
.cs-red .cs-title {
text-decoration: none;
}
.cs-red:hover .cs-title {
text-decoration: underline;
}
编辑:查看您的网站,如果它是您正在谈论的导航区域,您可以调整标记,以便每个{{1}内都有<a>
它被扩展到<li>
的整个宽度和高度。
这样可以支持IE6(将<li>
放在:hover
上)。
答案 2 :(得分:1)
绑定到悬停是可能的,但很棘手:
从jQuery 1.4.1开始,悬停事件可以 被指定(映射到mouseenter 和mouseleave,反过来,是 映射到mouseover和mouseout)。
您必须使用单个方法,然后根据事件类型切换行为(代码示例也来自jQuery文档):
$('.hoverme').live('hover', function(event) {
if (event.type == 'mouseenter') {
// do something on mouseover
} else {
// do something on mouseout
}
});
答案 3 :(得分:1)
$('.edit_hover').live('hover', function(event) {
if (event.type == 'mouseenter') {
// first function here
} else {
// second function here
}
});
答案 4 :(得分:0)
这是真的......
$("#your_div_id").live('mouseover',function(){
$(this).find(".child_div").css('background-color','#111111');
}).live('mouseout',function(){
$(this).find(".child_div").css('background-color','#757575');
});