我试图让我的jQuery UI对话框在5秒后关闭,但下面的代码没有做任何事情,任何建议?我用alert("hellow")
对它进行了测试,但它确实工作正常,但下面的代码无效。
success: function(data) {
$(data).dialog({
modal: true,
width: 900,
height: 600,
resizable: false,
title: thetitle,
draggable: false,
open: function(event, ui) {
setTimeout('$(this).dialog("close");', 5000);
}
});
5秒后为什么不关闭我的对话框?它没有做任何事情。
答案 0 :(得分:6)
您需要传递setTimeout
实际函数,而不是字符串。
setTimeout(function() {
$(data).dialog("close");
}, 5000);
当你传递一个字符串时,代码是eval
'd,我非常确定将this
设置为全局对象(这就是$(this).dialog
永远无法工作的原因)。
请注意,this
也不会采用上述方式(因为此时this
是全局对象),但它仍然被认为比将字符串传递给{更好,更好的形式{1}}。
答案 1 :(得分:1)
jquery .delay()怎么样?
success: function(data) {
$(data).dialog({
modal: true,
width: 900,
height: 600,
resizable: false,
title: thetitle,
draggable: false,
open: function(event, ui) {
$(this).dialog("close").delay(5000);
}
});
答案 2 :(得分:0)
var sT = setTimeout('$(this).dialog("close");', 5000);