1

我在将其投入使用时遇到了一些麻烦。

我有一个批准系统,用户单击链接以批准或不批准帖子。

所有内容都是通过 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);
}
4

1 回答 1

2

如果除了第一次尝试后消息闪烁和消失外一切正常,则说明隐藏功能有问题。您需要在再次调用 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);
}

请参阅此小提琴以进行演示。

您可能还想看一次这个问题。

于 2012-07-13T15:53:30.120 回答