2012-04-13 2 views
0

У меня есть страница с несколькими модальными диалоговыми окнами JQuery UI, я пытаюсь сделать ссылку на один диалог (faq), который закроет это диалоговое окно и откроет еще один (гарантия). Ниже приведен соответствующий код:Диалоговое окно диалога JQuery UI ('close'); не работает

var $faqIframe = $('<iframe />', { 
       name: 'myFrame', 
       id: 'myFrame', 
       src: "modal_faq.html", 
       width:"100%", 
       height:"100%", 
       align:"left", 
       scrolling:"auto", 
       frameborder:"0" 
      }); 

var $warrantiesIframe = $('<iframe />', { 
       name: 'myFrame1', 
       id: 'myFrame1', 
       src: "modal_warranties.html", 
       width:"100%", 
       height:"100%", 
       align:"left", 
       scrolling:"auto", 
       frameborder:"0" 
      }); 

, а затем, чтобы открыть Справку IFrame

$(function(){ 
    $('#faqDialog').dialog({ 
     autoOpen: false, 
     width: 780, 
     height: 460, 
     modal: true 
    }); 

    $('#faqDialog').append($faqIframe.clone()); 

    // Dialog Link 
    $('#faq_link, #faq_link1').click(function(){ 
     $('#faqDialog').dialog('open'); 


     return false; 
    }); 

Это прекрасно работает, открывает диалоговое окно, как и ожидалось. У меня есть аналогичный код для диалога гарантии. Это код, который в настоящее время не работает. # warranty_link2 - это ссылка в диалоговом окне faq, которая при щелчке я хотел бы вызвать закрытие диалога faq.

$('#warranty_link2').on("click", function(event){ 
     $('#faqDialog').dialog('close'); 
    }); 
} 

Я попытался

$('#faqDialog').dialog('close'); 
$('#faqDialog').dialog('hide'); 
$('#faqDialog').dialog('destroy'); 

Я также попытался с «живым» вместо «на», и без любого из этих двух, а также пытался ссылаться на него с варом $ faqIframe, как в

$faqIframe.dialog('close') 

без каких-либо результатов.

Я знаю, что событие click стреляет, потому что я положил в console.log, который сработал.

Что я делаю неправильно и как я могу закрыть это диалоговое окно?

в действии на http://www.solarkit2go.com - перейдите по ссылке Часто задаваемые вопросы

+0

Почему вы используете iframe? Похоже, вы просто клонируете их на свою текущую страницу html. Почему бы не включить содержимое iframe в скрытые div? – jrummell

+0

Возможно, $ ('# faqDialog') не существует или они больше чем один div. Создайте пример здесь http://jsfiddle.net/ –

+0

@ Floradu88 он существует, и это только один div, посмотрите http://www.solarkit2go.com, нажмите ссылку faq – Mike

ответ

2

Вы должны связать событие OnClick после сгореть диалога. См. Ниже

$(function(){ 
    $('#faqDialog').dialog({ 
    autoOpen: false, 
    width: 780, 
    height: 460, 
    modal: true 
}); 

$('#faqDialog').append($faqIframe.clone()); 

// Dialog Link 
$('#faq_link, #faq_link1').click(function(){ 
    $('#faqDialog').dialog('open'); 

    $('#warranty_link2').click(function(event){ 
     $('#faqDialog').dialog('close'); 
    }); 

    return false; 
}); 
+0

Я попробовал: \t $ ('# FAQ_LINK, # faq_link1') нажмите (функция() { \t \t $ ('# faqDialog') диалог ('открытый'); \t \t \t \t $ (».. # warranty_link2 ') на ("щелчок", функция (событие) { \t \t \t \t \t $. (' # faqDialog ') диалог. (' закрыть "); \t \t}); \t \t возвращение ложным; \t}); - но теперь событие click не срабатывает – Mike

+0

Я также пробовал $ (". ui-dialog-titlebar-close"). trigger ('click'); но это также не работает – Mike

+0

Странно. Используйте консоль Chrome и посмотрите, есть ли какие-либо ошибки, если да, вставьте их здесь –

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