您好我一直试图找到这个问题的答案。我正在尝试使用使用翻转的jquery创建导航栏。因此,对于三个不同的选项卡/图像,有一个On状态,关闭状态,单击状态。
例如: 主页|支持|约
我遇到的问题是获得点击/开启状态以关闭其他图像/标签,如果它已经处于开启/点击状态。保持hapening的是每个标签在单击时保持活动状态而不是切换为开启状态。
这是代码
$(document).ready(function() {
// Navigation rollovers
$("#nav a").mouseover(function(){
imgsrc = $(this).children("img").attr("src");
matches = imgsrc.match(/_on/);
// don't do the rollover if state is already ON
if (!matches) {
imgsrcON = imgsrc.replace(/_off.gif$/ig,"_on.gif"); // strip off extension
$(this).children("img").attr("src", imgsrcON);
}
});
$("#nav a").click(function(){
imgsrc = $(this).children("img").attr("src");
matchesclk = imgsrc.match(/_clk/);
if (!matchesclk) {
imgsrcClkON = imgsrc.replace(/_on.gif$/ig,"_clk.gif"); // strip off extension
$(this).children("img").attr("src", imgsrcClkON);
}
});
$("#nav a").mouseout(function(){
$(this).children("img").attr("src", imgsrc);
});
});
任何帮助将不胜感激。我是jquery的新手,我真的很喜欢这个。
答案 0 :(得分:1)
尝试使用CSS。这是一篇关于滑门技术的文章:
http://www.alistapart.com/articles/slidingdoors/
编辑以下是您应用点击状态的方式(假设您的HTML有效):
$(".yourLink").cick(function() {
$(".yourLink").removeClass("selected");
$(this).addClass("selected");
});
并确保在CSS中定义“selected”类。
答案 1 :(得分:0)
结合使用背景图像+ CSS作为标签的外观(如上所述),我建议您使用类表示不同的链接状态,然后从那里调整CSS。 E.g:
<div id="nav">
<a class="on" href="#">Link 1</a>
<a href="#">Link 1</a>
<a href="#">Link 1</a>
<a href="#">Link 1</a>
<a href="#">Link 1</a>
</div>
<style type="text/css">
#nav a { color: blue; }
#nav a.on { color: red; }
#nav a.current { color: green; }
</style>
<script type="text/javascript">
$(document).ready(function(){
$('#nav a').hover(
function(){ $(this).addClass('on'); },
function(){ $(this).removeClass('on'); }
);
});
</script>
等
答案 2 :(得分:0)
这对你有用吗?
<style>
.click
{
background-image: url(images/click.png);
}
.over
{
background-image: url(images/over.png);
}
</style>
$(document).ready(function()
{
$("#nav a").mouseover(function()
{
if($(this).attr("class") != "click")
$(this).addClass("over");
});
$("#nav a").click(function()
{
$("#nav a.click").removeClass("click");
$(this).addClass("click");
});
$("#nav a").mouseout(function()
{
$(this).removeClass("over");
});
});
<div id="nav">
<a>One</a>
<a>Tw0</a>
<a>Three</a>
</div>