我有一个小问题,当我点击一个块时,我希望另一个特定的块淡入,然后等待2.5秒后淡出。以下是我现在有的代码:
$('button.other-block').click(function () {
$(this)
.find('.specific-block')
.fadeIn()
.delay(2500).queue(function() {$(this).fadeOut(1600, complete)});
});
fadeIn正常工作,delay功能也正常运行。但是fadeOut似乎不起作用(无论我将其更改为.fadeOut(1600)还是只有.fadeOut()) 问题可能出在哪里?
以下是完整代码,因为上面有更简化的版本。
HTML:
<div class="account-edit-group">
<input type="text" value="" class="account-edit-field">
<div>
<button class="account-edit-field-save"> </button><button class="account-edit-field-cancel"> </button>
</div>
<div class="account-edit-field-warning"><span class="w-text">Error! You can enter no more than 30 symbols</span></div>
</div>
JS:
$('button.account-edit-field-save').click(function () {
var checklength = $(this).parent().parent().find('input.account-edit-field');
if(checklength.val().length > 30)
{
$(this)
.parent()
.parent()
.find('.account-edit-field-warning')
.fadeIn()
.delay(2500).queue(function() {
$(this).fadeOut(1600, complete).dequeue();
});
}
if(checklength.val().length <= 30)
{
$(this)
.parent()
.parent()
.removeClass('acc-edit-f')
}
});
因此,JS正在检查哪个按钮被点击了,如果点击了button-save按钮-它会检查上面的字段的值。如果有超过30个符号-它将显示错误消息。我需要先淡入它,展示一段时间,然后再淡出。这就是问题所在,它不会淡出,我不知道为什么。