当用户将鼠标悬停在列表项上时,我遇到了很多麻烦,使得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