Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2011, 20:15
Новичок на форуме
Отправить личное сообщение для 4ydik Посмотреть профиль Найти все сообщения от 4ydik
 
Регистрация: 03.09.2010
Сообщений: 9

Jquery диалоговые окна
Добрый день))) Опять пристаю ко всем со своими глупыми вопросами, вместо того, чтобы подумать, но:

$('#clickit').button().click(function(){
    $('#box').dialog('open');                

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


Диалоговое окно запускается только после второго нажатия, но если добавить перед этой функцией:

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

то диалоговое окно запускается сразу после первого нажатия, как избавится от лишнего текста?
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2011, 20:46
Аспирант
Отправить личное сообщение для UnderShot Посмотреть профиль Найти все сообщения от UnderShot
 
Регистрация: 30.12.2009
Сообщений: 44

$('#clickit').button().click(function(){ 
    $('#box').dialog({
        autoOpen: false, 
        width: 640, 
        height: 480, 
        buttons: { 
            "Ok": function() { 
                alert("dialog2");
            }, 
            "Cancel": function() { 
                $(this).dialog("close"); 
            } 
        } 
    });
    $('#box').dialog('open');
});
Так попробуйте.
Ответить с цитированием
  #3 (permalink)  
Старый 05.01.2011, 18: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");
	}
});
Ответить с цитированием
  #4 (permalink)  
Старый 05.01.2011, 18:12
Новичок на форуме
Отправить личное сообщение для 4ydik Посмотреть профиль Найти все сообщения от 4ydik
 
Регистрация: 03.09.2010
Сообщений: 9

Спасибо, уже решил проблемку))) Примерно так же только без проверки isInitialized
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Манипуляции внутри созданного окна с помошью jQuery Nubi jQuery 15 24.07.2014 18:48
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 07:01
Плавное открытие окна. Flashton Элементы интерфейса 3 20.10.2010 15:00
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 20:55
Подскажите с queryui Диалоговые окна. vova_b jQuery 3 05.10.2009 10:44