的#more
以下jsFiddle改變文本取決於#extra
能見度:更改文本,如果股利是可見
<style>
#extra{
display: none;
}
</style>
<a href="#" id="more">More about us</a>
<div id="extra">Some Text</div>
<script>
$('#more').click(function() {
if ($('#extra').is(':visible')) {
$(this).text('Less about us');
} else {
$(this).text('More about us');
}
$('#extra').slideToggle('fast');
});
</script>
這工作得很好。但是,現在不,如果我把slideToggle()
這樣的if語句上面的工作(見本jsFiddle):
$('#more').click(function() {
$('#extra').slideToggle('fast');
if ($('#extra').is(':visible')) {
$(this).text('More about us');
} else {
$(this).text('Less about us');
}
});
在這個例子中,該文本將保持「更多關於我們」不管#extra
是隱藏或不隱藏。爲什麼?
第二個不起作用,因爲if在slideToggle完成之前被評估。在第一個例子中,你不想'if(!$('#extra')。is(':visible')'? – j08691