【问题标题】:Basic jQuery slideUp/slideDown help基本 jQuery slideUp/slideDown 帮助
【发布时间】:2009-09-09 23:07:56
【问题描述】:

我想知道是否可以添加一个功能,它会再次显示数据,例如在给定的时间后让它向下滑动或其他东西,这样你就可以返回并重新输入你的数据。

目前只是提交后向上滑动,然后显示文字。

 $("#help").slideUp(function() {
$("#help").before('<div class="failMessage">SOME FAIL TEXT HERE</div>');
setTimeout(ShowControlsHideFailMessage,5000);
 });

    function ShowControlsHideFailMessage()
    {
       $("#help").slideDown();
       $('.failMessage').addClass('hidden');
    }

【问题讨论】:

  • 确认一下,您希望表单向上滑动(您已经完成)并在 5 秒后向下滑动?
  • 是的。这正是我想要的。有没有办法让它在滑回后隐藏文本?
  • @Joey:我进行了必要的更改以修复 slideDown 并隐藏消息。我在下面的回答解释了这种变化。

标签: javascript jquery function text submit


【解决方案1】:

下面的代码示例将使用 setTimeout 函数在 5 秒后调用 $("#help").slideDown()。另外,如果您想隐藏“FAIL TEXT”,我建议您使用 CSS 类来处理该消息,如下所示:

$("#help").slideUp(function() {
   $("#help").before('<div class="failMessage">SOME FAIL TEXT HERE</div>');
   setTimeout(ShowControlsHideFailMessage, 5000);
});

function ShowControlsHideFailMessage()
{
   $("#help").slideDown();
   $('.failMessage').addClass('hidden');
}

您可以将类 failMessage 用于红色字体或该消息的任何特殊内容,然后创建一个隐藏类将显示设置为无。

【讨论】:

  • 由于某种原因这不会超时哈哈。它做了一个 slideUp,然后立即向下滑动,但是在它向下滑动之后,文本仍然在它上面。
  • 从上面更新的 setTimeout 函数中删除括号...应该是 setTimeout(ShowControlsHideFailMessage, 5000);
  • 我用我正在使用的完整代码更新了这个问题,如果有帮助的话,我想我做错了!
  • @Joey:我的回答中有括号错误。我已经更正了...你现在应该可以走了。
  • 其实可以的,谢谢!你能告诉我为什么它显示 $("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn(100);再次?我是否也只需要在上面放一个 div 类?
【解决方案2】:

这里有一个更好的方法:

var failMessage = $('<div class="failMessage" />');
failMessage.text('SOME FAIL TEXT HERE');
//Create the failMessage beforehand

$("#help")
    .slideUp(function() {
        $(this).before(failMessage);
    })
    .delay(5000)
    .slideDown(function () {
        failMessage.hide();
    }​);​

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多