Javascript.RU

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

jquery dialog запускается только при втором обращении
Добрый день.

Подскажите пожалуйста, в чем может быть ошибка.
Я беру код для dialog`а

<script>
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
});
</script>


<div id="dialog" title="Basic dialog">
<p>тут тело диалога</p>
</div>
<button id="opener">Open Dialog</button>


Когда я переделываю этот код, чтобы он работал с разными кнопками, при нажатии на которые выводились бы разные сообщения, то у меня получается следующий код:

<script>
        function clickButton(idButton, idDiv) {
            $(idButton).click(function () {
                $(idDiv).dialog("open");
            });
        }
    </script>
    
    <script>
        $(function () {
            $(".image").dialog({
                autoOpen: false,
                width: "auto",
                show: {
                    effect: "blind",
                    duration: 1000
                },
                hide: {
                    effect: "blind",
                    duration: 1000
                }
            });
        });
    </script>


Вопрос в следующем: после загрузки страницы диалог открывается только при втором нажатии на кнопку. Если его потом закрыть и нажать на кнопку вновь, в этот раз диалог открывается с первого нажатия. Из-за чего это происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2014, 15:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Фоныч,
где запуск clickButton ?
Ответить с цитированием
  #3 (permalink)  
Старый 19.02.2014, 15:11
Новичок на форуме
Отправить личное сообщение для Фоныч Посмотреть профиль Найти все сообщения от Фоныч
 
Регистрация: 19.03.2010
Сообщений: 8

Сообщение от рони
где запуск clickButton ?
<div id="table" class="image" title="Basic table">
раз текст
</div>
<button id="openTable" class="open" onclick="clickButton(openTable, table)">Open Table</button>


<div id="win" class="image" title="Basic window">
два текст
</div>
<button id="openWindow" class="open" onclick="clickButton(openWindow, win)">Open Window</button>
Ответить с цитированием
  #4 (permalink)  
Старый 19.02.2014, 15:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Фоныч,
по клику клику -- 1 клик -- навесили открытие - 2 клик навесли открытие + открыли диалог -- 3 клик навесили открытие -- открыли диалог + закрыли диалог ... и тд пока браузер неопухнет.
Ответить с цитированием
  #5 (permalink)  
Старый 19.02.2014, 15:33
Новичок на форуме
Отправить личное сообщение для Фоныч Посмотреть профиль Найти все сообщения от Фоныч
 
Регистрация: 19.03.2010
Сообщений: 8

Подскажите, как правильно переписать, чтобы никто не опухал
Ответить с цитированием
  #6 (permalink)  
Старый 19.02.2014, 15:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Фоныч,
<!DOCTYPE HTML>

<html>

<head>
    <title>dialog demo</title>
  <meta charset="utf-8">
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <style type="text/css">

  <style type="text/css">
  .image2{
     display: none;
  }

  </style>

  <script>

      $(function () {
            $('.open').click(function () {
                 var id = $(this).data('image')
                $(id).dialog("open");
            });

            $(".image").dialog({
                autoOpen: false,
                width: "auto",
                show: {
                    effect: "blind",
                    duration: 1000
                },
                hide: {
                    effect: "blind",
                    duration: 1000
                }
            });
        });

  </script>
</head>

<body>
<div id="dialog" title="Basic dialog"  class="image">
<p>тут тело диалога</p>
</div>
<button id="opener" class="open" data-image='#dialog'>Open Dialog</button>
<div id="table" class="image" title="Basic table">
раз текст
</div>
<button id="openTable" class="open" data-image='#table'>Open Table</button>
<div id="win" class="image" title="Basic window">
два текст
</div>
<button id="openWindow" class="open" data-image='#win'>Open Window</button>

</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 19.02.2014, 16:04
Новичок на форуме
Отправить личное сообщение для Фоныч Посмотреть профиль Найти все сообщения от Фоныч
 
Регистрация: 19.03.2010
Сообщений: 8

Спасибо, большое. Заработало так как надо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery для placeholder работает только для первого input в ie Nailya jQuery 1 13.05.2014 09:57
jQuery UI Tabs и Joomla - зависает страница при открытии!! Sevchik jQuery 2 05.12.2012 09:23
Проблема при работе с плагином jQuery Map Hilight REp0rtER jQuery 3 29.07.2009 22:10
jQuery UI datepicker -- не биндится при загрузке mkrylov jQuery 4 20.05.2009 20:36
Dojo может подгружать информацию из пунктов меню только при клике на выбранный пункт? vlad275 Dojo toolkit 0 30.10.2008 15:56