JQuery UI диалог не является функцией при повторном вызове - PullRequest
3 голосов
/ 01 марта 2012

У меня есть эта функция для открытия диалогов JQuery UI

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');

, который работает хорошо (я могу открывать и закрывать какмного раз, я хочу), но если я загружаю некоторый контент динамически в #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*/
});

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

1 Ответ

0 голосов
/ 01 марта 2012

В вашем примере вы звоните 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');
});

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

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

...