定时事件只执行一次

时间:2012-07-13 15:10:27

标签: php jquery

我把这项工作搞砸了。

我有一个审批系统,用户点击链接批准或拒登帖子。

所有内容都加载了ajax调用,因此当用户执行单击操作时,会弹出一个信息窗口,提醒用户注意成功或错误,然后重新加载内容。

脚本正在运行,但只在第一次点击时才有效。在第二次单击时,消息会在内容重新加载之前立即闪烁并消失。

有人可以帮我这个吗?

这是代码

function activateSource(id) {
    $("#confirm-activate-" + id).toggle('slow');
    $(document).on('click', '.confirm-activate', function (e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            cache: false,
            data: {
                "source-id": id
            },
            url: "modules/source/activatesource.php",
            success: function (data) {
                $("#confirmation-response").html(data);
                dismissAlert();
            }
        })
    });
}

function dismissAlert() {
    setTimeout(function () {
        $("#confirmation-response").hide('blind', function () {
            loadSourceContent()
        }, 500);
    }, 2500);
}

1 个答案:

答案 0 :(得分:2)

如果一切正常,除了消息在第一次尝试后闪烁并消失,您的hide功能出现问题。在再次调用hide之前,您需要显示“确认 - 响应”,否则它只会闪烁。

尝试使用此 -

function dismissAlert() {
    // Show the response
    $("#confirmation-response").show( 'blind', 150 );

    // Hide the response with a timeout
    setTimeout(function () {
        $("#confirmation-response").hide('blind', function () {
            loadSourceContent()
        }, 500);
    }, 2500);
}

请参阅this fiddle了解演示。

您可能也想查看一次this问题。