Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2011, 22:01
Интересующийся
Отправить личное сообщение для DuMBaSSn1 Посмотреть профиль Найти все сообщения от DuMBaSSn1
 
Регистрация: 02.10.2011
Сообщений: 13

Jquery ui не открывается диалог
Что то непонятное с jquery ui.

Вот часть кода:

<script>
$("#dialog").dialog({
    autoOpen: false,
    modal: true,
    buttons: { 
        'Ok': function() {  
            $('#dialog').dialog("destroy");   // кнопки не работают
        },  
        'Cancel': function() {  
            $('#dialog').dialog('close');   // кнопки не работают
        }  
    }
        
});
$('#dialog').dialog('open'); /// срабатывает

$("#start").click(function(){
    var ready1 = <?php echo $user->ready1; ?>;
    var ready2 = <?php echo $user->ready2; ?>;
    if(ready1 != 0 && ready2 != 0)
    { 
	/// что тут неважно	
    }
    else
    {	
        alert('hello world!11'); /// срабатывает
        $('#dialog').dialog('open'); /// но если стоит это, то не работает
    }
	
});


Помогите что я не так делаю, div сверху стоит если что.
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2011, 22:16
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Вызывайте код после готовности DOM. Может прокатит
$(document).ready(function() {
$("#dialog").dialog({
//...

});
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2011, 22:18
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

1) Правильно писать
Ok: function() {
		$( this ).dialog( "close" );
}

2) нафига вам destroy ? (Так после нажатия ok заголовок повторно открываться не будет.)
вместо $('#dialog').dialog("destroy");
пишите $( this ).dialog( "close" );

3) Поместите код внутрь. (стиль лучше соблюдать. )
$(document).ready(function(){
... ваш код
});


4) отпишитесь что это дало.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 18.10.2011 в 22:52.
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2011, 17:52
Интересующийся
Отправить личное сообщение для DuMBaSSn1 Посмотреть профиль Найти все сообщения от DuMBaSSn1
 
Регистрация: 02.10.2011
Сообщений: 13

1) Без изменений, на кнопки не реагирует
2) Тоже самое
3) Поместил, alert по прежнему открывается, а диалог нет.
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2011, 17:57
Интересующийся
Отправить личное сообщение для DuMBaSSn1 Посмотреть профиль Найти все сообщения от DuMBaSSn1
 
Регистрация: 02.10.2011
Сообщений: 13

Может я не так подключил скрипты?

<link type="text/css" href="components/com_hello/css/custom-theme/jquery-ui-1.8.16.custom.css" rel="stylesheet" />
<script src="components/com_hello/js/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="components/com_hello/js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2011, 20:49
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1251" /> 
<title></title> 
 <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css"> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){
$("#dialog").dialog({
    autoOpen: false,
    modal: true,
    buttons: { 
        //"Ok": function() {  //этот код тоже рабочий, но сами создатели jquery UI так никогда не напишут.
        Ok: function() {  
            $(this).dialog("close");   // кнопки  работают
            // $("#dialog").dialog("close"); // даже это будет работать, хоть это и не красиво
        },  
        Cancel: function() {  
            $(this).dialog('close');   // кнопки  работают
        }  
    }
        
});

//К сведению если вместо autoOpen: false, написать autoOpen: true, эту строку с dialog('open'); можно не писать
$('#dialog').dialog('open'); /// срабатывает



$("#start").click(function(){    
        //alert('hello world!11'); /// срабатывает 
        $('#dialog').dialog('open'); ///  работает!!!!!!!     
	
});
});

</script> 

</head> 

<!--  Собственно тело нашего html, из 2х строк -->

<body> 
<div id="dialog">я диалог</div>
<div id="start">(НАЖМИ НА МЕНЯ)</div>

</body> 
</html>

ВРОДЕ ВСЁ НОРМ ))

Небольшое дополнение.
Глядя на это "components/" я подумал, а вы случайно не для битрикса компонент пишите? (впрочем это касается вообще любых систем с виджетами, компонентами, плагинами smarty и тд )

Если да, то убедитесь что скрипты подключаюся хотябы в шаблоне страницы, и не дай бог в шаблоне компонента.Это касается всех компонентов в системе, а не только вашего.

Любой компонент с таким кривым подключением скриптов, отрендеренный после вашего, убьёт все jquery скрипты что были до него. Обновление такого компонента по Ajax 2.0 (тупо передача html, сгенеренная по шаблону коспонента) - также убьёт скрипты jquery.

Логика проста: нельзя подключать jQuery, после подключения jQuery.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 19.10.2011 в 21:35.
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2011, 21:24
Интересующийся
Отправить личное сообщение для DuMBaSSn1 Посмотреть профиль Найти все сообщения от DuMBaSSn1
 
Регистрация: 02.10.2011
Сообщений: 13

Делаю компонент для joomla, в обычном html документе работает, а тут отказывается, как думаете может из-за jommla?
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2011, 21:43
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Проверь другие компоненты как я написал, убедись что jquery не подключается несколько раз.
Вместо #dialog попробуй другое имя, а то вдруг кто-то использует уже.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2011, 21:57
Интересующийся
Отправить личное сообщение для DuMBaSSn1 Посмотреть профиль Найти все сообщения от DuMBaSSn1
 
Регистрация: 02.10.2011
Сообщений: 13

Jquery подключается вроде 1 раз, даже если отключить jquery в компоненте то все не работает.

Еще заметил если сделать так:

///.....
else
{
    $('#dialog').dialog('open');  // На этом месте действие прерывается, т.к. alert уже не открывется
    alert('hello world!11');
}
///.....
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2011, 22:00
Интересующийся
Отправить личное сообщение для DuMBaSSn1 Посмотреть профиль Найти все сообщения от DuMBaSSn1
 
Регистрация: 02.10.2011
Сообщений: 13

Может связано с div? Он (текст из дива) воявляется на странице всего на секунду, затем пропадает и открывается диалог. После закрытия диалога (на крестик) текст из дива также отсутствует.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
jQuery object в xpath. Глобальные события solarix jQuery 1 29.10.2010 16:40
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16