2013-03-03 3 views
0

Я ранее использовал следующий скрипт, и он работал отлично. Я не я теперь получаю следующее сообщение об ошибке:Простой диалог jQueryUI вызывает ошибку с 1.9

Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'. 
jquery-latest.js (line 507) 

При обновлении до jQueryUI 1.10.1, он больше не приводит к ошибке. Обычно я просто отпускаю, обновляю и не беспокоюсь об этом. Проблема с этим заключается в том, что она работала в прошлом, так почему бы и нет сейчас меня не смущать? Я, должно быть, делаю какую-то глупость, чем раньше, но я не вижу этого.

<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>jQuery UI Dialog</title> 
     <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
     <link type="text/css" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" rel="stylesheet" /> 
     <script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js" type="text/javascript"></script> 
     <script> 
      $(function() { 
       $("#open").click(function(){$("#dialog").dialog('open');return false;}); 
       $("#dialog").dialog({ 
        modal: true, 
        autoOpen : false, 
        buttons: { 
         Ok: function() { 
          $(this).dialog("close"); 
         } 
        } 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <button id="open">Click</button> 
     <div id="dialog" title="What ever"></div> 
    </body> 
</html> 
+1

Если он работает без каких-либо проблем в новой версии она должна быть ошибка с версией, которую вы используете. Я знаю, что это сводит вас с ума, но это жизнь веб-разработчика. Материал постоянно меняется, иногда даже час за часом! –

+0

Оказывается, он отлично работал для меня, используя jQuery 1.8.1, не используя последнюю версию jQuery! – user1032531

+0

Это не имеет значения. Ошибки появлялись все время, а затем снова исправлялись в более поздней версии, но на ваш вопрос упоминалось, что он корректно работал в jQuery 1.10.1, поэтому я решил, что он был устранен исправлением ошибки. Есть много известных проблем в 1.9, поэтому 1.9.1 был выпущен так вскоре после этого. –

ответ

0

У меня была аналогичная проблема, которую я разрешил, указав мой массив кнопок вне объявления диалога.

var buttonArray = {}; 
buttonArray["Ok"]=function() { $(this).dialog("close");} 

Ваши варианты станут:

 
    modal: true, 
    autoOpen: false, 
    buttons: buttonArray 
Смежные вопросы