我哪里错了? http://jsfiddle.net/j5yTU/
当鼠标离开区域时,只想让.ex向上滑动..但它似乎循环然后向上滑动。
$("div.case").mouseover(function () {
var id = $(this).attr("id");
$(this).css("opacity", "1").css("filter", "alpha(opacity=100)");
$(".ex"+id).slideDown(500);
});
$("div.case").mouseout(function () {
var id = $(this).attr("id");
$(this).css("opacity", "0.4").css("filter", "alpha(opacity=40)");
$(".ex"+id).slideUp(500);
});
任何人都知道问题可能是什么?
答案 0 :(得分:1)
请尝试使用mouseenter
和mouseleave
。
如果您在具有绑定事件的元素中从每个子元素移动到另一个子元素,也会触发事件mouseover
和mouseout
。
您还可以使用hover
,mouseenter
和mouseleave
答案 1 :(得分:1)
这可能是您执行此功能的更好方法:
$('.case').hover(function(){
var id = $(this).attr('id');
$(this).css('opacity':'1','filter':'alpha(opacity=100)');
$('.ex'+id).slideDown(500);
},
function(){
var id = $(this).attr('id');
$(this).css('opacity':'0.4','filter':'alpha(opacity=40)');
$('.ex'+id).slideUp(500);
});
悬停方法使用两个函数。第一个是初始悬停功能,第二个是悬停呼叫回叫功能。我猜测的.ex
元素是以这种方式生成的? .ex0,.ex1,.ex2
。如果是这样,你的功能应该有效如果.ex
元素在.case
范围内并且有多个.case
,则可以使用此选择器:
$('.ex',this)
如果你有这些元素的列表,你可以使用退出id的方法并使用:eq()
索引选择器:
$('.ex:eq('+id+')')
答案 2 :(得分:0)
$("div.case img").mouseover(function () {
....
}
$("div.case img").mouseout(function () {
....
}