我已经看过一些关于这个问题的帖子,但是我得到了一个实际的错误而不是它没有打开。窗口在成功函数上成功打开。但是我在关闭它之后收到错误消息,然后尝试重新打开它。
错误消息
未捕获的TypeError:无法读取属性'打开'未定义的
$(document).ready(function () {
$(".export-pdf").click(function () {
$.ajax({
url: "/Home/Save",
type: "POST",
data: { source: data },
success: function (data, textStatus, jqXHR) {
openEmailWindow();
}
});
});
});
function openEmailWindow() {
var window = $("#email");
$("#undo1")
.bind("click", function () {
window.data("kendoWindow").open();
});
if (!window.data("kendoWindow")) {
window.kendoWindow({
width: "600px",
title: "Subject Property",
actions: ["Close"],
deactivate: onDeactivate
});
}
function onDeactivate(e) {
this.destroy();
console.log("event :: deactivate");
}
}
});
视图
<span id="undo1" style="margin-left: 865px" class="export-pdf k-button">Print Pdf</span>
<div id="email"></div>
答案 0 :(得分:1)
问题是你在去激活处理程序中调用this.destroy(),它会从DOM中删除widget html。
因此,它无法打开,因为它不存在。
http://docs.telerik.com/kendo-ui/api/javascript/ui/window#methods-destroy
答案 1 :(得分:1)
问题正在发生,因为您在停用期间正在销毁窗口。而不是你应该使用关闭功能
def apply_coder(text, coder):
"""
Applies the coder to the text. Returns the encoded text.
text: string
coder: dict with mappings of characters to shifted characters
returns: text after mapping coder chars to original text
"""
coder_dict = coder
text_list = list(text)
for letter in text_list:
if letter in coder_dict:
letter = coder_dict[letter]
print letter
return ''.join(text_list)