Показать сообщение отдельно
  #3 (permalink)  
Старый 05.01.2011, 19:09
Новичок на форуме
Отправить личное сообщение для chosen Посмотреть профиль Найти все сообщения от chosen
 
Регистрация: 05.11.2009
Сообщений: 9

$('#box').dialog({
	autoOpen: false,
	width: 640,
	height: 480,
	buttons: {
		"Ok": function() {
			alert("dialog2");
		},
		"Cancel": function() {
			$(this).dialog("close");
		}
	}
});

этот код является инициализацией диалогового окна
$('#box').dialog('open');

а этот код является открытием(отображением) предварительно синициализированого диалогового окна

поэтому при первом клике $('#box').dialog('open'); несрабатывает поскольку еще не было инициализации после чего происходит инициализация
при втором клике окно инициализировано и $('#box').dialog('open'); срабатывает

советую вынести код инициализации из обработчика события click
либо поместить в условие "была ли инициализация":
$("#clickit").button().bind("click", function(event) {
	var $box = $("#box");
	if ($box.data("isInitialized") == null) {
		$box.dialog({
			autoOpen: true,
			width: 640,
			height: 480,
			buttons: {
				"Ok": function() {
					alert("dialog2");
				},
				"Cancel": function() {
					$box.dialog("close");
				}
			}
		});
		$box.data("isInitialized", true);
	} else {
		$box.dialog("open");
	}
});
Ответить с цитированием