我想要工具栏,其中从具有 class 的 div 中检测到 mouse-out/in 事件container
。和事件按预期工作mouseover
。mouseout
当鼠标移入和移出元素及其后代时会触发这些事件。但是没想到的事情发生了:新创建的div在鼠标移动到自己的时候就被删除了,删除后又触发了mouseover
事件,于是又创建了一个新的div,让人眼花缭乱。任何遇到过这种问题的人请帮助我。谢谢。
假设你有这个 HTML:
<div id='parent' class="parent container">
<div id="child1" class="child container">
</div>
<div id="child2" class="child container">
</div>
</div>
而且,这个 JavaScript:
$(function() {
$('div.container').on('mouseover', function(e){
e.stopPropagation();
$(this).append("<div class='newdiv'></div>")
console.log("into " +$(this).attr('id'));
}).on('mouseout', function(e){
$(".newdiv",this).remove();
console.log("out from " + $(this).attr('id'));
})
});
使用 CSS:
.parent
{
border:1px solid black;
width:100%;
height:400px;
}
.child
{
float:left;
width:40%;
border:1px solid red;
margin:1px;
height:300px;
}
.newdiv{
border:1px solid blue;
margin:2px;
width:100px;
height:100px;
position:absolute;
right:0;
}