Javascript Hover div jquery
这是我的剧本:Javascript Hover div jquery,javascript,jquery,show-hide,Javascript,Jquery,Show Hide,这是我的剧本: <body> <div id ="mainCategory" class='fade'> Category</div> <div id="divSubCategory"> Category1 <br /> Category2 </div> <script type="text/javascript">
<body>
<div id ="mainCategory" class='fade'>
Category</div>
<div id="divSubCategory">
Category1
<br />
Category2
</div>
<script type="text/javascript">
$("div").hover(
function () {
$(this).append($("#divSubCategory").html());
},
function () {
$("#divSubCategory").remove();
}
);
$("#divSubCategory.fade").hover(function () { $(this).fadeOut(100); $(this).fadeIn(500); });
</script>
</body>
类别
类别1
类别2
$(“div”)。悬停(
函数(){
$(this.append($(“#divSubCategory”).html());
},
函数(){
$(“#divSubCategory”).remove();
}
);
$(“#divSubCategory.fade”).hover(函数(){$(this.fadeOut(100);$(this.fadeIn(500);});
我想在mainCategory悬停时显示和隐藏divSubCategory。但它不起作用。我应该添加什么?将代码包装到document.ready()函数中
好的,伙计,问题是您使用的是
.html()
。这复制了内部HTML(不是外部<代码> <代码>位……只是中间的位。
因此,当您执行$(“#divSubCategory”).remove()
时,它将删除HTML中的实际div,而不是您移动到上面div中的HTML
假设您在#divSubCategory
上有display:none
,您将看到该div中的文本附加到第一个div中,然后当您将鼠标移出时,它不会消失(尽管第二个(隐藏的)div将被删除)
无论如何,解决这个问题的方法是使用clone()
。我将为您做一个小提琴:
我还为你修复了淡色
编辑:这会在显示之前将
div#div子类别
移动到div#main类别
中,然后当鼠标移出时将其完全移除-这是我假设您想从代码中执行的操作。Nicks只会显示并隐藏它所在的位置。根据您的需要,这两个答案都是正确的。:)这是100%满足您的要求:
检查此项:这应该不是问题,因为代码是在HTML之后编写的。@ThomasClayson,我有HTML标记,只是没有到达这里。@cagin是的,我想,但我的意思是你不需要使用
$(document).ready(function(){…})代码>(或者这不是您的问题),因为javascript在HTML之后。因此HTML在脚本之前进入浏览器,一切正常。但是,您可能应该使用$(document).ready()
,以防您想将脚本移动到外部文件中或某些文件工作不正常。它可以工作,但我想在鼠标离开主类别时隐藏子类别。当鼠标移到主类别上时,这会隐藏子类别。问题是div#divSubCategory
未包含在div#maincegory
中,因此当您尝试将鼠标移到div#divSubCategory
上时,该div将隐藏。如果这是一个菜单系统(例如),那么这将不适用于您,因为您需要在鼠标滑过它时显示div#divSubCategory
。谢谢,忘了这些:)
$(document).ready(function(){
// Your code here
});
$(document).ready(function(){
$('#mainCategory').bind('mouseenter', function() {
$('#divSubCategory').fadeIn();
});
$('#mainCategory').bind('mouseleave', function() {
$('#divSubCategory').fadeOut();
});
});