1

jQueryUIの機能にページを読み込もうとしていますが.dialog()、うまくいきます。しかし、ダイアログ ボックスを閉じた後も、ページの残りの部分は無効のままです。

$(function() {
    var w = $(document).width();
    var h = $(document).height();

    $( "#diag" ).dialog({   //dialog box settings
        autoOpen: false,        //do not open automatically
        show: { 
            effect: "slide"     //slide frame in
        },
        modal: true,            //disable the other elements
        width: w,               //set width to window width
        height: h               //set width to window height
    });

    $( ".icon" ).click(function() { //on .icon click
        var v = $(this).attr('value'); //load value of clicked item into v
        $( "#diag" ).load(v).dialog( "open" ); //open the #diag box
    });
});

.load(v)v の初期化を削除してコメント アウトすると、完全.dialog()に機能します。私は困惑しています。

4

2 に答える 2

1

問題はおそらく.loadコンテンツを非同期的に置き換えることです。そのため、ダイアログを適切に閉じるイベント バインディングがすべて失われる可能性があります。

代わりにこれを試してください:

var v = $(this).attr('value');
var dialogContent = $('#diag');
dialogContent.load(v, function() {
    dialogContent.dialog('open');
});

つまり、ロードが完了するのを待ってから、ダイアログを開きます。

于 2013-04-30T20:26:19.770 に答える
0

クリック機能内のすべてを移動すると、すべてが適切に機能しました。みんな助けてくれてありがとう。

$(function() {
$( ".icon" ).click(function() {  //on .icon click
    var w = $(document).width();
    var h = $(document).height();

    $( "#diag" ).dialog({   //dialog box settings
       show: {  
       effect: "slide"      //slide frame in
       },
       modal: true,         //disable the other elements
       width: w,            //set width to window width
       height: h                //set width to window height
});
    var v = $(this).attr('value');  //load value of clicked item into v
$( "#diag" ).load(v).dialog( "open" );      //open the #diag box
});

});
于 2013-05-01T12:45:34.230 に答える