Jquery对话框表格宽度选取上一个值

时间:2012-05-02 09:44:48

标签: jquery html jquery-ui

我有一个Jquery对话框,如下所示:

$("#dvPopup").dialog({
        autoOpen: false,
        width: 450,
        height: 300,
        buttons: [{
            text: "Ok",
            click: function () { $(this).dialog("close"); }
        }
        ]
    });

我有以下功能,我在点击网格中的链接时调用(表中的每一行都有一个弹出链接):

function showNotes(Id) {
    var grid = $("#NotesPopup").data("tGrid");
    grid.ajax.selectUrl = "/Test/GetNotes?Id=" + Id;
    grid.rebind();
    $("#dvPopup").dialog("open");
    var width= $("#dvPopup .t-grid >table").width();

    if (width > 450) {
        $(".ui-widget-content").css("width", width + 30);
    }
    else{
        $(".ui-widget-content").css("width", 450);
    }
    $(".ui-widget-content").css("height", 'auto');        
}

我在dvPopup中有一个表,我根据表的宽度设置弹出的宽度。我的问题是我正在加载上一个表的宽度而不是当前加载的表,当我打开并关闭相同的弹出窗口两次然后它按预期工作。上述代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我破解了。我使用了不同的选择器而不是"#dvPopup .t-grid >table并使用了解决我问题的对话框选项。这是解决方案:

function showNotes(Id) {
 var grid = $("#NotesPopup").data("tGrid");     
 grid.ajax.selectUrl = "/Test/GetNotes?Id=" + Id;
 grid.rebind();
 $("#dvPopup").dialog("open");
 var width= $(".table_1").width();
  if (width > 450) {
      $("#dvPopup").dialog('option', 'width', test + 30);
 }     
else{
      $("#dvPopup").dialog('option', 'width', test + 30);
 }
  $("#dvNotesPopup").dialog('option', 'height', 'auto');
 }