我正在开发一些功能,以在用户单击链接时显示包含一些文本的 div。
该链接最初显示文本“show +”,然后当显示 div 时,此文本更改为“hide -”。代码如下:
查询
<script>
$(document).ready(function() {
$('p.link + div').hide();
$('p.link a').prepend('<span>info +</span> ');
$('p.link a').click(function(e) {
var vis = $(this).parent().next().toggle().is(':visible');
$(this).find('span').text(vis ? 'hide -' : 'info +');
e.preventDefault();
});
});
</script>
HTML
<p class="link"><a href="#" class="show-hide"> </a></p>
<div class="info">
<p>Some sample text to show and hide</p>
</div> <!-- info -->
这一切都很好,但后来我决定而不是立即显示/隐藏,通过在切换中添加速度来逐渐显示文本会很好。因此,我修改了以下行:
查询
var vis = $(this).parent().next().toggle("slow").is(':visible');
这给了我想要的过渡效果,但现在链接文本没有改变。它最初仍显示为“信息+”,但从那里开始,无论是否显示 div,链接文本都显示为“隐藏 -”。
我认为这是因为代码总是以某种方式将 div 视为显示,即使它不是,但我不确定如何解决这个问题。
任何帮助,将不胜感激。
谢谢