请参阅下面的代码。我想要的只是:
使用下面的代码,如果我将鼠标悬停在item2上,它会开始闪烁item2和item3。
我做错了什么?
的jsfiddle:
HTML
<div class="item1">
item1
</div>
<div class="item2">
item2
</div>
<div class="item3">
item3
</div>
CSS:
item1 {
position:absolute;
width:150px;
height:150px;
background-color:red;
top:5%;
}
.item3, .item2 {
position:absolute;
width:50px;
height:50px;
background-color:green;
top:8%;
left:1%;
display:none;
}
.item3 {
top:18%;
}
JS:
var item1 = $(".item1");
var item2 = $(".item2");
var item3 = $(".item3");
item1.hover(
function() {
item2.show();
item3.show();
},
function() {
item2.hide();
item3.hide();
}
);
item2.hover(
function() {
item3.hide();
},
function() {
}
);
item2.click(
function() {
alert("Perform some function");
}
);
答案 0 :(得分:2)
<div class="item1">
item1
<div class="item2">
item2
</div>
<div class="item3">
item3
</div>
</div>
你应该重新构建你的HTML
item2超出item1所以当你移动item2时,item1的mouseleave将触发,然后触发item1的mouseenter
答案 1 :(得分:0)
您需要使用事件监听器,否则您的代码只是自上而下运行。
答案 2 :(得分:0)
如果您不想重构HTML,可以在item3上编写另一个onhover函数
item3.hover(
function() {
item2.show();
item3.show();
},
function() {
}
);
干杯
答案 3 :(得分:-1)
增加item1的z-index,或者只将item2 + 3移动到其他任何地方