2012-02-29 3 views
3

я иметь эту функцию, чтобы открыть JQuery UI диалоговыеJQuery не функция при повторном вызове его

function pop_up(div, titulo){ 
         $("#" + div).dialog({ 
          autoOpen: false, 
          show: "explode", 
          hide: "explode", 
          modal: true, 
          minHeight: 550, 
          height: 'auto', 
          width: 'auto', 
          title: titulo 

         }); 
      $("#" + div).dialog("open"); 
      return false; 

     } 

которым я называю его в том же скрытый DIV:

pop_up('pop', 'my title'); 

Wich работ (я могу открывать и закрывать столько раз, сколько захочу), но если я загружу некоторый контент динамически в #div, я получаю эту ошибку firebug (в следующем приложении, чтобы открыть диалог)

$("#" + div).dialog is not a function 
[Parar en este error] 

title: titulo 

В основном

pop_up('pop', 'my title'); /* OK*/ 
$('#pop').load('somefile.html',function(){ 
    pop_up('pop', 'some title'); /* CRASH*/ 
}); 

сгорит ошибку; любая идея, что я делаю неправильно?

+0

Возможно, это проблема с синхронизацией и что нагрузка удается завершить до вызова функции, который создал диалог? – j08691

+0

@ j08691, но его немного странно, что ошибка не является функцией. нет? –

+0

Хммм, похоже, работает в этом jsFiddle: http://jsfiddle.net/j08691/wt9UB/ – j08691

ответ

0

В вашем примере вы вызываете pop_up() с идентификатором div. Я не уверен, что это хорошее значение id, но точно так же в следующей строке кода вы пытаетесь загрузить 'somefile.html' в #pop, который, возможно, еще не создан. Затем вы пытаетесь создать новый pop_up, который ссылается на тот же объект, который загружается (#pop).

Будет ли это работать?

pop_up('div1', 'my title'); 
$('#div1').load('somefile.html',function(){ 
    pop_up('pop', 'some title'); 
}); 

Здесь мы используем диалог с идентификатором див1. Затем мы загружаем 'somefile.html' в этот диалог. Как только эта загрузка будет завершена, мы создадим новый pop_up под названием pop.

Надеюсь, это поможет!

+0

отредактировал мой вопрос, мне нужно, чтобы он был одним и тем же div ... –

Смежные вопросы