0

この質問はすでに行われていると思いますが、グーグルにフィードするのに適したキーワードが見つかりません。質問にぴったりのタイトルすら見つかりません。私はこれをしたい:

$(".selector").click(function() {
    $(this).css("background-color", "red");
    if (confirm("Do you want to do this ?") {
        // do this
    } else {
        $(this).css("background-color", "transparent");
    }
});

しかし、cssの変更は、確認した後でのみ実行されます。確認前(または確認中)に起動するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

1

遅延を追加するだけの単純な問題だと思います(0ミリ秒でも)。これにより、確認メッセージが表示される前にページが確実に再描画されます。

$(".selector").click(function() {
    $(this).css("background-color", "red");
    var _this = this;
    function confirmCode(){
        if (confirm("Do you want to do this ?") {
            // do this
        } else {
            $(_this).css("background-color", "transparent");
        }
    }
    setTimeout(function(){confirmCode()}, 0)
});

編集:完全なコードを追加

于 2012-05-05T13:46:37.653 に答える