我有一些这样的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);