Javascript jQuery:点击的链接应该淡出,不接受进一步的点击
我现在有了链接,单击后链接会淡出:Javascript jQuery:点击的链接应该淡出,不接受进一步的点击,javascript,jquery,fade,fadeout,Javascript,Jquery,Fade,Fadeout,我现在有了链接,单击后链接会淡出: <!DOCTYPE html> <html> <head> <style> a.toggle { color:#3E6D8E; background-color: #E0EAF1; border-bottom: 1px solid #3E6D8E; border-right: 1px solid #7F9FB6; padding: 3
<!DOCTYPE html>
<html>
<head>
<style>
a.toggle {
color:#3E6D8E;
background-color: #E0EAF1;
border-bottom: 1px solid #3E6D8E;
border-right: 1px solid #7F9FB6;
padding: 3px 4px 3px 4px;
margin: 2px 2px 2px 0;
text-decoration: none;
font-size: 90%;
line-height: 2.4;
white-space: nowrap;
}
a.toggle:hover {
background-color: #e7540c;
color: #E0EAF1;
border-bottom: 1px solid #A33B08;
border-right: 1px solid #A33B08;
text-decoration: none;
}
a.filter {
color:#3E6D8E;
background-color: #E0EAF1;
border-bottom: 1px solid #3E6D8E;
border-right: 1px solid #7F9FB6;
padding: 3px 4px 3px 4px;
margin: 2px 2px 2px 0;
text-decoration: none;
font-size: 90%;
line-height: 2.4;
white-space: nowrap;
}
a.filter:hover {
background-color: #3E6D8E;
color: #E0EAF1;
border-bottom: 1px solid #37607D;
border-right: 1px solid #37607D;
text-decoration: none;
}
</style>
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script>
$(document).ready(function () {
$('a.toggle').click(function () {
$(this).prev().andSelf().fadeOut('fast');
});
});
</script>
</head>
<body>
<p>Please click on
<a class="filter" href="?filter=1">Tag 1</a><a class="toggle" href="/?toggle=2">X</a></p>
<p>Please click on
<a class="filter" href="?filter=2">Tag 2</a><a class="toggle" href="/?toggle=2">X</a></p>
</body>
</html>
a、 拨动{
颜色:#3E6D8E;
背景色:#E0EAF1;
边框底部:1px实心#3E6D8E;
右边框:1px实心#7F9FB6;
填充:3px4px3px4px;
边距:2×2×2×0;
文字装饰:无;
字体大小:90%;
线高:2.4;
空白:nowrap;
}
a、 切换:悬停{
背景色:#e7540c;
颜色:#E0EAF1;
边框底部:1px实心#A33B08;
右边框:1px实心#A33B08;
文字装饰:无;
}
a、 滤器{
颜色:#3E6D8E;
背景色:#E0EAF1;
边框底部:1px实心#3E6D8E;
右边框:1px实心#7F9FB6;
填充:3px4px3px4px;
边距:2×2×2×0;
文字装饰:无;
字体大小:90%;
线高:2.4;
空白:nowrap;
}
a、 过滤器:悬停{
背景色:#3E6D8E;
颜色:#E0EAF1;
边框底部:1px实心#37607D;
右边框:1px实心#37607D;
文字装饰:无;
}
$(文档).ready(函数(){
$('a.toggle')。单击(函数(){
$(this.prev()和self().fadeOut('fast');
});
});
请点击
请点击
但我现在有一个新问题,当点击“X”链接并开始淡出时,它仍然可以再次被点击,这对我的脚本不好——因为“X”不应该完全删除“标记”,而只是将其移动到一个隐藏部分下,正如你在这个屏幕截图中看到的那样。然后,随后的单击应将其向后移动:
我怎样才能防止后续点击
我可能应该调用$(this.prev().andSelf().fadeOut('fast').attr('href',XXX)强>?但这里的新价值应该是什么
谢谢大家!!Alex您可以使用“
#
”,如果href
是#
,您可以在触发click事件后立即解除绑定(删除)它,确保它只运行一次
$(document).ready(function () {
$('a.toggle').click(function () {
$(this).unbind("click").prev().andSelf().fadeOut('fast');
});
});
不过,与Mike所说的类似,让jQuery为您完成这项工作,而不是担心解除绑定:
$('a.toggle').one("click", function () {
$(this).prev().andSelf().fadeOut('fast');
});
这意味着函数将启动一次,然后自动解除绑定。谢谢,所以我应该调用$(This).prev().andSelf().fadeOut('fast').attr('href','#');但是如何使单击处理程序remove false呢?我还在学习jQuery文档…只需添加一个
return false代码>在函数末尾。也就是说,Mike
的解决方案是一个更好的解决方案(使用unbind
)。实际上,这不起作用,因为根本没有调用底层PHP脚本-也就是说,没有单击发生,只是元素消失了,我的错误-您需要测试所单击链接的href
,如果它是#
,则只返回false。唯一的问题是,它将解除OP可能应用/应用于链接的任何其他单击事件处理程序的绑定。@Psytronic。它不应该这样做,因为您只是解除“this”的click事件的绑定,这将是单击的单个锚点。如果他希望将其他方法绑定到此元素的单击事件,那么唯一的冲突将出现。对不起,我遗漏了重要信息,我的意思是“应用于链接”。我会更新的,谢谢:)更简洁一点。我不知道这个函数存在。XD在我生命中出现之前,我也是如此;)StackOverflow的简写:)这是一个很棒的网站!(他们应该为奉承添加徽章)