1

Web ページのパーシャルビューに対して ajax 呼び出しを行い、そこからタイトルとデータを取得してからダイアログ ウィンドウに表示しようとしています。ただし、ダイアログを作成すると、1回は正しく開き、さらに6回は空のダイアログ(タイトルバーのみ)として開きます。

クロムでは、partialView に HTMLDivElement と 7 つの HTMLScriptElements が含まれていることがわかります。これにより、複数のオープンが考慮されます。ただし、その div 要素だけのダイアログを開くと、スクリプトが読み込まれません (したがって、ルックアップとタブは機能しません)。

  $.ajax(url)
  .success(function (partialViewHtml) {
     // get page data

     $(partialViewHtml).dialog({
        title: title,
        modal: true,
        resizable: true,
        draggable: true,
        height: sheight,
        width: swidth
     });

どんな助けでも大歓迎です。しばらく壁に頭をぶつけていました。ありがとう。

4

2 に答える 2

1

お分かりのように、ダイアログを開く jQuery コレクションには 7 つの要素があるため、これは正常な動作です。

たとえば、スクリプト要素をページに個別に追加する必要があります。

$('body').append(scriptElementHTML);

そして、 div だけでダイアログを開きます:

$(divHtml).dialog({
于 2012-09-11T08:49:59.763 に答える
0

jQuery ui にすべてのダイアログを閉じる方法があるかどうかはわかりませんが、このようにすることができます

function createDailog () {
    $(".ui-dialog-content").dialog("close");  // close all dialogs

    $("<div>fdfdsfdsfdsfds<div>").dialog({
        title: "title",
        modal: true,
        resizable: true,
        draggable: true,
        height: 200,
        width: 200
    });
}

または、このような条件を付けることができます

if(!$(".ui-dialog-content:visible").length){
    // show dialog
}
于 2012-09-11T08:55:53.037 に答える