jquery .dialog .jqprint повторяет предыдущий контент - PullRequest
0 голосов
/ 27 мая 2011

У меня есть рабочее диалоговое окно, которое корректно загружает контент.В диалоговом окне также есть кнопка печати, которая выполняет .jqprint против DIV в диалоговом окне.Это печатает нормально с первого раза, но каждая последующая команда печати печатает то, что было напечатано первым.Диалог показывает правильную новую информацию.Я добавил кнопку ALERT, которая также показывает старый контент.

$("tr[id^=contract_]").css("cursor","hand").live("click",function(e) { 
    var sContract = $(this).attr("id").split("_")[1];
    $("<div id=\"printthis\" style=\"border:1px; #ffffff solid;\"></div>")
        .load("_contractdetails.aspx?contract=" + sContract + "")
        .dialog({
                autoOpen: true,
                title: "Contract Detail",
                draggable: true,
                modal: true,
                width:900,
                height:450,
                buttons: { "Close": function() { $(this).dialog("close");    },
                           "Print": function() { $("#printthis").jqprint(); },
                           "ALERT": function() { alert($("#printthis").html()); }
                         },
                resizable: true 
        });
});

Почему #printthis не воссоздается каждый раз?Должен ли я уничтожить копию памяти #printthis каким-либо образом?Это ограничение .jqprint?

1 Ответ

1 голос
/ 27 мая 2011

Сначала вам нужно удалить старый div - иначе вы используете один и тот же id дважды, что может привести к множеству странных действий. Другим решением будет создание div только при необходимости:

var div = $('#printthis');
if(!div.length) {
    div = $('<div id="printthis" style="border:1px; #ffffff solid;"></div>');
}

Кроме того, вы можете захотеть открыть диалоговое окно из-за успешного обратного вызова load(), так как в противном случае вы откроете диалоговое окно со старым содержимым, а затем - через несколько мгновений, когда придет ответ сервера - обновите его новым содержимым .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...