1

これは本当に私を悩ませています。Uncaught Error: cannot call methods on dialog before initialization;というエラーがコンソールに表示されます。メソッド「close」を呼び出そうとしました

$( function() {
    $('#search_all_notes_input').dialog({
        autoOpen: false,
        show: {
            effect: "blind",
            duration: 1000
        },
        hide: {
            effect: "explode",
            duration: 1000
        }
    });

    /* Make the Search div a button and open dialog on click */
    $( "#search_all_button" ).button().click(function() {       
        $( "#search_all_notes_input" ).dialog( "open" );
    });
});

$('#submit_search_all_button').click( function () {
    var searchText = $('#search_all_text').val();       
    var query = location.search.split('=');
    var urlMrn = query[1];
    formData = { mnr: urlMRN, search_text: searchText };
    console.log(formData);
    //$.post('note_search.php', formData, getMatchedNotes(data));
    $(this).dialog('close');
});

何か案は?カスタム ダイアログ ボタンの代わりに、ダイアログ div 内でボタン要素を使用しています。また、スクリプトは HTML ページの最後にロードされます

4

1 に答える 1

1

問題は、最初にダイアログを作成した要素ではなくdialog('close')#submit_search_all_buttonボタンで呼び出していることです。#search_all_notes_input

の代わりに$(this).dialog('close');、これを使用します。

$('#search_all_notes_input').dialog('close');
于 2013-07-27T21:29:18.623 に答える