Проблемы с методом dialog (jqueryui)

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
Есть две страницы сайта: раздел и страница (статья).
Везде вызов js кода идет одинаков, тот же файл. На страницах тот же html-код (блок для показа и скрытия). На одной странице работает, на другой выдает ошибку:
Error: cannot call methods on dialog prior to initialization; attempted to call method 'open'
js-код такой:
Код:
$('#block_city').dialog({
          autoOpen: false,
          // height: 210,
          width: 550,
          modal: true
        
        });

//Показ блока с городами
     $('#link_act_city').on('click',function(){
       $('#block_city').dialog( "open" );
       return false;
     });
    
     $('#close_block_city').on('click',function(){
       $('#block_city').dialog("close");
     });
Если написать в коде проверку наличие метода
Код:
if("dialog" in document){console.log('sdfsdf')}
, то все в консоле выводит. Даже если инициализацию сделать в autoOpen: true, то блок открывается. Но после закрытия та же ошибка.
Без помощи не разберусь :)
 
Последнее редактирование:
Попробуйте вот так

Код:
$(document).ready(function(){
$('#block_city').dialog({
          autoOpen: false,
          // height: 210,
          width: 550,
          modal: true
     
        });

//Показ блока с городами
     $('#link_act_city').on('click',function(){
       $('#block_city').dialog( "open" );
       return false;
     });
     $('#close_block_city').on('click',function(){
       $('#block_city').dialog("close");
     });
});
 
Попробуйте вот так

Код:
$(document).ready(function(){
$('#block_city').dialog({
          autoOpen: false,
          // height: 210,
          width: 550,
          modal: true
    
        });

//Показ блока с городами
     $('#link_act_city').on('click',function(){
       $('#block_city').dialog( "open" );
       return false;
     });
     $('#close_block_city').on('click',function(){
       $('#block_city').dialog("close");
     });
});
Этот код и так находится в
$(document).ready(function(){}
 
может быть у вас библиотека jQuery несколько раз на странице подгружается?
иногда бывает такое. подгружается jQuery, потом разные плагины для нее. а потом по недоразумению снова библиотека jQuery, которая и приводит к тому что подгруженные плагины недоступны...
 
Это надо в онлайне смотреть, а так вилами по воде только можно. Возможно, на второй странице происходит конфликт имен. Подключаются еще какие-нибудь библиотеки?
попробуйте $ заменить на jQuery
 
Попробуйте так

var theDialog = $('#block_city').dialog({
autoOpen: false,
// height: 210,
width: 550,
modal: true

});

//Показ блока с городами
$('#link_act_city').on('click',function(){
theDialog.dialog("open");
return false;
});
 
еще такое бывает при несостыковке версии jquery и jquery-ui.
 
Назад
Сверху