автоматическое закрытие диалогового окна jQuery UI с помощью setTimeout
Я пытаюсь автоматически закрыть диалог через три секунды после открытия. Я пробовал следующие методы:
setTimeout($("#mydialog").dialog('close'), 3000);
вот он в контексте:
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
setTimeout($("#acknowledged-dialog").dialog('close'), 3000);
но с помощью этого метода он даже не показывает! Я предполагаю, что метод close вызывается сразу после того, как он показывается на странице. Журнал не показывает ошибок.
Я также пробовал привязку к событию dialogopen:
$("#acknowledged-dialog").bind('dialogopen', function(event, ui) {
setTimeout($(this).dialog('close'), 3000);
});
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
диалоговое окно отображается, но не закрывается автоматически. Нет ошибка в журналах здесь тоже.
Я не могу использовать " это " в аргументе для $ в setTimeout?
2 ответов
setTimeout вызывает возвращаемое значение $("#mydialog").диалог ("закрыть") через 3 секунды. вы хотите бросить все это как строку, и это должно работать просто отлично. Кроме того, я не думаю, что вы хотите привязать "dialogopen" перед инициализацией диалога. Ниже должно работать просто отлично:
$("#acknowledged-dialog").dialog({
height: 140,
modal: true,
open: function(event, ui){
setTimeout("$('#acknowledged-dialog').dialog('close')",3000);
}
});
Я написал статьи специально для проблемы, которую вы испытываете. Пожалуйста, прочтите это.
короче говоря, вы хотите обернуть $("#mydialog").dialog('close')
с встроенной функцией везде, где вы хотите, чтобы она выполнялась в результате задержки или инициированного события.
setTimeout(function(){
$("#mydialog").dialog('close')
}, 3000);
диалоговое окно даже не отображается, потому что вы закрыли его, как только открыли его в каждом случае.