我有以下 jquery 代码。
基本上我将有几个重叠的 div 和所有这些重叠 div 右侧的链接列表。将鼠标悬停在链接上时,链接分配的 div 将淡入。
我有以下代码并且它可以工作(它使用默认窗口的示例图片),但如果有人能想到一种优化它或使其通用的方法,我将不胜感激。
<html>
<head>
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#trigger1").mouseover(function() {
$(".contentdiv").addClass("inactive");
$("#divsunset").removeClass("inactive");
$(".inactive").fadeOut(500);
$("#divsunset").fadeIn(500);
});
$("#trigger2").mouseover(function() {
$(".contentdiv").addClass("inactive");
$("#divwinter").removeClass("inactive");
$(".inactive").fadeOut(500);
$("#divwinter").fadeIn(500);
});
$("#trigger3").mouseover(function() {
$(".contentdiv").addClass("inactive");
$("#divbh").removeClass("inactive");
$(".inactive").fadeOut(500);
$("#divbh").fadeIn(500);
});
$("#trigger4").mouseover(function() {
$(".contentdiv").addClass("inactive");
$("#divwl").removeClass("inactive");
$(".inactive").fadeOut(500);
$("#divwl").fadeIn(500);
});
});
</script>
<style>
#divsunset
{
position: absolute;
top: 5px;
left: 5px;
}
#divwinter
{
position: absolute;
top: 5px;
left: 5px;
}
#divbh
{
position: absolute;
top: 5px;
left: 5px;
}
#divwl
{
position: absolute;
top: 5px;
left: 5px;
}
#links
{
position: absolute;
top: 800px;
left: 700px;
}
.inactive
{
}
</style>
</head>
<body>
<div id="divsunset" class="contentdiv">
<img src="Sunset.jpg" />
</div>
<div id="divwinter" class="contentdiv">
<img src="Winter.jpg" />
</div>
<div id="divbh" class="contentdiv">
<img src="bh.jpg" />
</div>
<div id="divwl" class="contentdiv">
<img src="wl.jpg" />
</div>
<br />
<div id="links">
<a href="#" id="trigger1">Show Sunset</a>
<a href="#" id="trigger2">Show Winter</a>
<a href="#" id="trigger3">Show Blue Hills</a>
<a href="#" id="trigger4">Show Waterlillies</a>
</div>
</body>
</html>
谢谢 Matt、TM 和 kRON,您的回复真的很有帮助。
我觉得我没有完全解释自己,但 TM 提供了我正在寻找的答案。
我想关注 DRY,这次 TM 提供的代码对我的帮助最大,因为它不需要我更改我的标记,只需要更改 jQuery 代码。
再次,非常感谢。我得到答案的速度之快令人惊讶。继续伟大的工作。