我一直在研究这个错误大约一个小时而没有任何进展。我有一个JavaScript函数,用于构建包含 onclick 事件的 span 元素。但是,当我单击IE11中的跨度以尝试触发该功能时,我会收到上面显示的错误消息。我怀疑这可能是一个范围问题,但可能是错误的。
以下是有问题的简明部分:
function getListItemsGeneric(branchId, listDispName) {
$().SPServices({
operation: "GetListItems",
async: false,
listName: listDispName,
CAMLViewFields: "[FieldNames]",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
[. . . other HTML-building code. . .]
htmlBuilder += "<div class='editIcon'><span class='ui-icon ui-icon-pencil' onclick=\"gatherItemInfo(" + progId + ", '" + listDispName + "')\"></span></div>";
});
}
});
}
function gatherItemInfo(prog, list) {
alert("!");
}
在构建 span 时,我使用 onclick 事件来调用 gatherItemInfo 并提供两个变量。单击跨度应该会显示警报,但我会在此帖子的标题中显示该消息。 getListItemsGeneric 和 gatherItemInfo 在同一个JavaScript文件中处于同一级别;以我的思维方式调用应该能够看到 gatherItemInfo ,但现在似乎并非如此。
对于它的价值,当我在DOM Explorer中查看它时, span 似乎是格式良好的。我错过了什么?
答案 0 :(得分:0)
元素的onclick值不知道创建元素的上下文。它正在寻找全局上下文中的函数gatherItemInfo
。听起来你在其他地方定义了它。您可以以编程方式分配单击处理程序,也可以将函数设置为全局。