0

私はこのJSコードを持っています:

$( document ).ready( function() {

    $( "#dialog" ).dialog({
            modal: true,
            autoOpen: false
        });

    $( "input[name=age]" ).change( function() {
        $( "#dialog" ).open();

        $.get( '/viewer?tool=10&age=' + $( this ).val(), function( data ) {
            $( "#dialog" ).close();            
        });
    });
});

名前「年齢」の入力の値を変更すると、コンソールに次のエラーが表示されます。

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にはメソッド 'open' がありません

スクリプトを HTML ドキュメントの head に正しく追加しました。.dialog を呼び出してもエラーは発生しません。

コードを次のように変更すると:

$( document ).ready( function() {

    $( "#dialog" ).dialog({
            modal: true,
            autoOpen: false
        });

    $( "input[name=age]" ).change( function() {
        $( "#dialog" ).dialog( "open" );

        $.get( '/viewer?tool=10&age=' + $( this ).val(), function( data ) {
            $( "#dialog" ).dialog( "close" );            
        });
    });
});

すべて正常に動作します。

それをどう説明しますか?

ありがとう!

4

1 に答える 1

3

標準の jQuery コレクションにはopenメソッドがありません。jQuery UI は、ダイアログ ボックスのインスタンス化と制御に使用できるダイアログ メソッドをコレクションに追加します。

于 2012-12-07T13:10:32.517 に答える