2012-04-13 13 views
0

私は、複数のモーダルjQuery UIダイアログを持つページを持っています。そのダイアログを閉じて別のものを開く(保証)という、1つのダイアログ(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ダイアログの終了をトリガーします。私は

$('#faqDialog').dialog('close'); 
$('#faqDialog').dialog('hide'); 
$('#faqDialog').dialog('destroy'); 
私も「ライブ」の代わりに試してみました

を試してみました

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

「オン」、およびそれらの2のいずれかにすることなく、同様 はまた、変数$ faqIframeでそれを参照してみました

$faqIframe.dialog('close') 

のような結果はありません。

私は、動作したconsole.logを入れたので、クリックイベントが発生していることがわかりました。

私は間違っていますが、どうすればこのダイアログを閉じることができますか?

http://www.solarkit2go.comでアクションでそれを参照してください - あなたは、ダイアログを起動した後のonclickイベントをバインドする必要がある質問リンク

+0

なぜiframeを使用していますか?あなたは現在のhtmlページにそれらを複製しているように見えます。 iframeのコンテンツを非表示のdivとして含めるのはなぜですか? – jrummell

+0

$( '#faqDialog')が存在しないか、複数のdivになっている可能性があります。ここに例を作成http://jsfiddle.net/ –

+0

@Floradu88それは存在し、1つのdivだけです。http://www.solarkit2go.comをチェックし、FAQリンクをクリックしてください。 – Mike

答えて

2

をクリックします。以下を参照

$(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 $を(」。。 #1 warranty_link2 ')上( "クリック"、機能(イベント){ \t \t \t \t \t $。(' #faqDialog ')ダイアログ。(' 近い '); \t \t}); \t \t復帰はfalse; \t}); - クリックイベントは発生しません – Mike

+0

$( ".ui-dialog-titlebar-close")も試しました。しかし、これも動作していません – Mike

+0

奇妙な。 Chromeのコンソールを使用してエラーがある場合は、ここに貼り付けてください –

関連する問題