我試圖在懸停鏈接時打開div
。這很簡單,我做得很好。但我也想在沒有關閉的情況下訪問div
。因此,如果我將鼠標懸停在新打開的div上,它將保持打開狀態。但是如果我徘徊在div之外,我希望它關閉。在鼠標上打開div並保持打開狀態
我也想確保如果我將鼠標懸停在div關閉的鏈接之外。我已經做了幾次,但在我的生活中,我無法將其排除。我記得以前使用setTimeout
,但我的腦子已經糊塗了,所以遲到了,所以我認爲我不妨尋求一些幫助。
我也知道mouseenter
和mouseleave
會比懸停在這種情況下好得多,我只是將它鍵入爲懸停速度。
UPDATE 更改HTML不是一個選項這是一個jQuery的問題,而不是一個HTML或CSS的一個。
jQuery(document).ready(function($) {
"use strict";
$("li.true a").hover(
function() {
$(".open").fadeIn(1000);
}, function() {
$(".open").fadeOut(1000);
}
);
$(".open").hover(
function() {
$(this).show();
}, function() {
$(this).fadeOut(1000);
}
);
});
ul,
li {
list-style: none;
}
li {
display: inline-block;
}
a {
display: block;
padding: 10px;
background-color: black;
color: white;
-webkit-transition: all 0.35s ease-in-out;
transition: all 0.35s ease-in-out;
cursor: pointer;
}
a:hover {
color: black;
background-color: white;
}
li.true a {
background-color: green;
}
li.true a:hover {
background-color: blue;
color: green;
}
div.open {
background-color: red;
width: 100%;
height: 300px;
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<nav>
<ul>
<li><a>not</a>
</li>
<li><a>not</a>
</li>
<li class="true"><a>true</a>
</li>
<li><a>not</a>
</li>
<li><a>not</a>
</li>
</ul>
</nav>
<div class="open"></div>
爲什麼不使用CSS:爲此懸停?儘可能在JS上使用CSS是個不錯的主意。 –
無法使用CSS,因爲它不是一個直接的兄弟姐妹,並且在激活器的容器之外 – DCdaz
不要因爲對一個不好的答案的批評而投棄權票。 – DCdaz