在JQuery中2s后显示全部错误消息

时间:2012-03-15 13:05:26

标签: javascript jquery

如何在显示错误消息后2秒后显示全部错误消息?

这样的东西
$(document).ready(function () {
    $('#error_message').show().delay(2000).fadeOut('slow');
});

因此,无论何时显示错误消息,错误消息都希望在显示输出后持续2秒。 在每个节点内很难改变这一点。所以我想编写一般代码,这将在每一页都有效。 因此,无论何时显示错误消息,它都希望在2秒内显示出来。

有可能吗?

4 个答案:

答案 0 :(得分:1)

如果你在document.ready上执行此操作,它将被执行一次,而不是每次显示错误消息时都会执行。

使用函数实现延迟的fadeOut以显示错误。

function display_error(message) {
    $('#error_message').html(message);
    $('#error_message').show().delay(2000).fadeOut('slow');
}

如果这不起作用或不合适,您还可以将其绑定到事件并触发显示的事件。

<强>示例
http://jsfiddle.net/28XTM/

答案 1 :(得分:0)

要使用'#error_message'作为id隐藏错误,但如果您有多个元素,那么您应该使用'.error_message'作为类而不是id。

$(document).ready(function () {
    $('#error_message').delay(2000).fadeOut('slow'); // For id and use $('.error_message') for class
    //Or
    setTimeout(function(){
        $('#error_message').fadeOut('slow'); // For id and use $('.error_message') for class
    }, 2000)
});​

小提琴是here

永远不要将id $(“#someId”)用于多个元素,它应该是唯一的,而不是使用类$(“。someClass”),当你有类似的东西时

<div class="someClass">This is an error.</div>
<div class="someClass">This is an error.</div>

答案 2 :(得分:0)

使用ajaxError事件处理程序显示项目中所有ajax调用的错误。只需将此代码粘贴到您的布局页面:

$(function(){
     $(".error_message").ajaxError(function (event, xhr, status, error) {
           $(this).html(error).show().delay(2000).fadeOut('slow');
     });
});

答案 3 :(得分:0)

使用setTimeout:

<div id="error_message">
     Put your error message here
</div>

<button id="btn_error">Show error</button>

<script>

// Init sample
$('#error_message').hide();

function display_error(message) {
    $('#error_message').html(message);
    $('#error_message').show();
    setTimeout(function () {
        $('#error_message').hide();
    }, 2000);
}

$("#btn_error").click(function() {
    display_error("Show this test message");
});
</script>