我有一些这样的jQuery / JavaScript:

$("#dialog-coin-flip").dialog({
    height: "auto",
    width: 400,
    autoOpen: false,
    modal: false,
    draggable: true,
    resizable: true,
    closeOnEscape: false,
    closeText: "Close",
    buttons: {
        "Flip": function() {
            $(this).children("div").html("Flipping...");
            var flipResult = coinFlip();
            setTimeout($(this).children("div").html(flipResult), 1000);
        },
        "Close": function() {
            $(this).dialog("close");
        },
    }
});

function coinFlip() {
    var flipResult = Math.floor(Math.random() * (1 - 0 + 1) + 0);
    if (flipResult === 0) {
        return "You flipped a coin and it came up heads.";
    }
    else if (flipResult === 1) {
        return "You flipped a coin and it came up tails.";
    }
}


当我单击按钮“翻转”时,我收到消息:

Uncaught SyntaxError: Unexpected identifier


经过1000毫秒后,在Chrome的JavaScript控制台中。

我究竟做错了什么?

最佳答案

您需要将代码包含在函数中。
尝试使用此:

var $here = $(this);
setTimeout(function() {
    $here.children("div").html(flipResult);
}, 1000);


代替这个:

setTimeout($(this).children("div").html(flipResult), 1000);

09-25 10:50