我正在尝试在mouseenter上显示说明,并隐藏mouseleave
上的说明。
问题是我在mouseleave
上清空了我的附加变量,但是当鼠标输入时,变量将永远丢失,它不会再次附加变量。
$(document).ajaxComplete(function(){
$(".defList").css("display","none");
$("#1a").mouseenter(function(){
var defterm=$(".1b");
$(".slidingDiv dl").append(defterm);
$(".slidingDiv").css("left", 150);
$(".slidingDiv").css("top", 150);
$(".slidingDiv").fadeIn("fast");
$("#1a").mouseleave(function(){
$(".slidingDiv").fadeOut("fast");
$(".slidingDiv dl").empty();
});
});
$("#2a").mouseenter(function(){
var defterm=$(".2b");
$(".slidingDiv dl").append(defterm);
$(".slidingDiv").css("left", 300);
$(".slidingDiv").css("top", 150);
$(".slidingDiv").show("fast");
$("#2a").mouseleave(function(){
$(".slidingDiv").fadeOut("fast");
$(".1b").empty();
});
});
});
答案 0 :(得分:0)
您的目标是在mouseenter / houseleave上显示/隐藏某些内容。 不要使用javascript,请使用css:hover
您可以使用css过渡来为淡入/淡出设置动画。
请显示html和所需的效果。然后我们可以帮助你解决问题。
在任何情况下,不要使用empty(),而是以这种方式执行defterm.detach()元素。
答案 1 :(得分:0)
您可以执行CodeToad建议的操作,或者只缓存值,然后重新分配。再次,似乎奇怪的是“清空”它。有很多方法可以解决你的情况。但好奇为什么要把它清空。你可以将它包裹在一个范围内,然后“隐藏”它。然后在你想要的时候展示。
$(document).ajaxComplete(function(){
$(".defList").css("display","none");
var cache = {
'1b' : $('.1b'),
'2b' : $('.2b'),
}
$("#1a").mouseenter(function(){
$(".slidingDiv dl").append(cache['1b']);
$(".slidingDiv").css("left", 150);
$(".slidingDiv").css("top", 150);
$(".slidingDiv").fadeIn("fast");
$("#1a").mouseleave(function(){
$(".slidingDiv").fadeOut("fast");
$(".slidingDiv dl").empty();
});
});
$("#2a").mouseenter(function(){
$(".slidingDiv dl").append(cache['2b']);
$(".slidingDiv").css("left", 300);
$(".slidingDiv").css("top", 150);
$(".slidingDiv").show("fast");
$("#2a").mouseleave(function(){
$(".slidingDiv").fadeOut("fast");
$(".1b").empty();
});
});
});