當用戶將鼠標懸停在列表項上時,我遇到了很多麻煩,使得div在我的網站上顯示。基本上,我有一個鏈接列表。當用戶在其中一個懸停時,我需要兩個div出現 - 一個是所有懸停通用的背景框,另一個是充滿與該列表項目相關的內容。當鼠標離開「row2」區域時(所有內容都包含在內),我還需要所有div消失。下面的腳本是半工作的,但是,如果用戶將鼠標從一個列表項快速移動到下一個列表項,項目「疊加」並且不會正確消失。將鼠標懸停在列表項目上時會出現div?
這裏你可以看到這個問題:
這裏是jQuery的我目前有:
$(document).ready(function()
{
$(".subjectarea_box,.subjectarea_box > div").hide();
$(".subjectarea_topics li[class!='arts-culture-recreation']").mouseover(function()
{
$("div.arts-culture-recreation").hide();
});
$("li.arts-culture-recreation").mouseover(function()
{
$("div.arts-culture-recreation,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.arts-culture-recreation,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='civic-vitality']").mouseover(function() {
$("div.civic-vitality").hide();
});
$("li.civic-vitality").mouseover(function() {
$("div.civic-vitality,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.civic-vitality,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='demographics']").mouseover(function() {
$("div.demographics").hide();
});
$("li.demographics").mouseover(function() {
$("div.demographics,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.demographics,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='economy']").mouseover(function() {
$("div.economy").hide();
});
$("li.economy").mouseover(function() {
$("div.economy,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.economy,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='education']").mouseover(function() {
$("div.education").hide();
});
$("li.education").mouseover(function() {
$("div.education,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.education,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='environment-transportation']").mouseover(function()
{
$("div.environment-transportation").hide();
});
$("li.environment-transportation").mouseover(function() {
$("div.environment-transportation,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.environment-transportation,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='financial-self-sufficiency']").mouseover(function() {
$("div.financial-self-sufficiency").hide();
});
$("li.financial-self-sufficiency").mouseover(function() {
$("div.financial-self-sufficiency,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.financial-self-sufficiency,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='health']").mouseover(function() {
$("div.health").hide();
});
$("li.health").mouseover(function() {
$("div.health,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.health,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='housing']").mouseover(function() {
$("div.housing").hide();
});
$("li.housing").mouseover(function() {
$("div.housing,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.housing,div.subjectarea_box,.subjectarea_box > div").hide();
});
$(".subjectarea_topics li[class!='public-safety']").mouseover(function() {
$("div.public-safety").hide();
});
$("li.public-safety").mouseover(function() {
$("div.public-safety,div.subjectarea_box").fadeIn();
});
$("div.row2").mouseleave(function() {
$("div.public-safety,div.subjectarea_box,.subjectarea_box > div").hide();
});
});
</script>
...這是一個怪物,我知道(而且可能非常低效) 。
有人可以推薦一個更好和更少的錯誤的方式來完成這項任務?
謝謝!!!
克里斯汀, 謝謝你的提示。我只是嘗試了交換,不幸的是發生了同樣的錯誤(從一個到下一個快速懸停時出現多個框)。 – Febrium
嗯...怎麼樣搗毀這些低劣的東西,用「懸停」來代替? http://api.jquery.com/hover/ –
$(...).hover(onHoverFunction,onMouseLeaveFunction)對於你正在做的事情來說是簡單的速記,雖然它使用了我認爲的「mousenters」事件。 – jdc0589