1

これを機能させるのに問題があります。

ユーザーがリンクをクリックして投稿を承認または却下する承認システムがあります。

すべてのコンテンツにはajax呼び出しが読み込まれるため、ユーザーがクリックすると、情報ウィンドウが表示され、ユーザーに成功またはエラーを警告してから、コンテンツを再読み込みします。

スクリプトは機能していますが、最初のクリックでのみ機能します。2回目のクリックで、メッセージが点滅し、コンテンツが再ロードされる前にほぼ瞬時に消えます。

誰かがこれを手伝ってくれませんか?

これがコードです

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を呼び出す前に、「confirmation-response」を表示する必要があります。そうしないと、ちらつきます。

これを使ってみてください-

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 に答える