0

複数のモーダル jQuery UI ダイアログを含むページがあり、そのダイアログを閉じて別のダイアログを開く (保証) 1 つのダイアログ (よくある質問) にリンクを作成しようとしています。以下は関連するコードです。

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 は、よくある質問ダイアログのリンクであり、クリックすると、よくある質問ダイアログを閉じるようにしたいと考えています。

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

私が試してみました

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

また、「on」の代わりに「live」を試してみましたが、これら2つのどちらも使用しませんでしたまた、var $faqIframeで参照しようとしました

$faqIframe.dialog('close') 

結果なし。

機能したconsole.logを入力したため、クリックイベントが発生していることがわかります。

このダイアログを閉じるにはどうすればよいですか?

http://www.solarkit2go.comで動作を確認してください- よくある質問のリンクをクリックしてください

4

1 に答える 1

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;
});
于 2012-04-13T13:21:29.240 に答える