好的,我仍然对下面的这段代码有一些问题。我从一些 SO 用户那里得到了一些指导,我对此表示感谢。
但是,我仍然对我在这里做错了什么感到困惑。我有一个使用图像的基本翻转 jquery 脚本。但是,当用户单击其中一个图像时,我希望该图像保持“活动/单击”状态。如果单击另一个图像,我希望该图像处于“活动/单击”状态,并且先前活动/单击的图像返回到关闭状态。
基本上,我希望它像选项卡控件 Off、On、Active 一样工作。下面的代码适用于点击的例外情况。当我单击图像时,它会变为“活动”。但是当我单击另一个图像时,它不会切换先前单击的图像,因此我最终将所有图像都处于“活动”状态。我已经尝试了我能想到的一切,并在谷歌上搜索了答案,但我尝试的一切最终都得到了相同的结果。单击而不是切换时,所有图像都保持“活动”状态。
有人可以看看并帮助我弄清楚我在这里缺少什么。我刚开始使用 jquery,我仍在学习我的方式。顺便说一句,我知道这可以用 CSS 来完成,但由于我正在努力学习,我宁愿了解我做错了什么,然后转向另一种方法。所以请不要建议我用 CSS 作为答案。提前致谢。
$(document).ready(function() {
var sel;
$("#nav a").mouseover(function() {
if ( $(this).data("clicked") ) { return; }
$(this).children("img").each(function() {
this.src = $(this).attr("src").replace(/_off.gif$/ig,"_on.gif");
});
}).mouseout(function() {
if ( $(this).data("clicked") ) { return; }
$(this).children("img").each(function() {
this.src = $(this).attr("src").replace(/_on.gif$/ig,"_off.gif");
});
//handle clicks
}).click(function() {
if( sel != null ) {
$(this).children("img").each(function() {
this.src = $(this).attr("src").replace(/_clk.gif$/ig,"_off.gif");
});
}
$(this).children("img").each(function() {
this.src = $(this).attr("src").replace(/_on.gif$/ig,"_clk.gif");
})
sel = this;
});
});
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<div id="nav">
<div id="logo"><img src="images/inbox_wrilogo.gif" width="143" height="30" alt="logo" border="0" /></div>
<div id="tab"><a href="#"><img src="images/nav_support_off.gif" width="75" height="22" alt="Support" name="support" border="0"/></a></div>
<div id="tab"><a href="#"><img src="images/nav_acct_off.gif" width="75" height="22" alt="My Account" name="acct" border="0" /></a></div>
<div id="tab"><a href="#"><img src="images/nav_inbox_off.gif" width="75" height="22" alt="Inbox" name="inbox" border="0" /></a></div>
</div>