Javascript 财产的价值';gatherItemInfo';为null或未定义,不是函数对象
我已经研究这个错误大约一个小时了,没有任何进展。我有一个JavaScript函数,它构建了一个包含onclick事件的span元素。但是,当我在IE11中单击span以尝试触发该函数时,我反而得到了上面显示的错误消息。我怀疑这可能是一个范围问题,但可能是错误的 以下是有关的简明部分:Javascript 财产的价值';gatherItemInfo';为null或未定义,不是函数对象,javascript,Javascript,我已经研究这个错误大约一个小时了,没有任何进展。我有一个JavaScript函数,它构建了一个包含onclick事件的span元素。但是,当我在IE11中单击span以尝试触发该函数时,我反而得到了上面显示的错误消息。我怀疑这可能是一个范围问题,但可能是错误的 以下是有关的简明部分: function getListItemsGeneric(branchId, listDispName) { $().SPServices({ operation: "GetListItem
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("!");
}
函数getListItemsGeneric(branchId,listDispName){
$().SPServices({
操作:“GetListItems”,
async:false,
listName:listDispName,
CAMLViewFields:“[FieldName]”,
completefunc:函数(扩展数据、状态){
$(扩展数据.responseXML).SPFilterNode(“z:row”).each(函数(){
[…其他HTML构建代码…]
htmlBuilder+=“”;
});
}
});
}
函数gatherItemInfo(程序,列表){
警惕(“!”);
}
在构建span时,我使用onclick事件调用gatherItemInfo并提供两个变量。单击span应该会导致出现警报,但我会在这篇文章的标题中看到消息getListItemsGeneric和gatherItemInfo在同一JavaScript文件中处于同一级别;按照我的想法,电话应该能够查看并查看gatherItemInfo,但现在似乎不是这样
值得一提的是,当我在DOM资源管理器中查看span时,它似乎是格式良好的。我缺少什么?元素的onclick值不知道创建元素的上下文。它正在全局上下文中查找函数
gathereItemInfo
。听起来好像是你在别的地方定义的。您可以通过编程方式指定click处理程序,也可以将函数设置为全局函数。我还尝试将GathereItemInfo移动到getListItemsGeneric的不同级别,但徒劳地尝试了一些事情,但仍然没有成功。请添加更多标记或解释我们使用CAMLViewFields和SPFilterNode的框架,这样我们就不必查看了。您是否尝试过调试?您是否尝试过将.toString()
添加到变量progId
和listDispName
?这在类似的情况下也起了作用。只是一个问题。。我认为progIDd中缺少的“”应该是-\“gathereItemInfo(“+progId+”,“+listDispName+”)\”我的想法是一样的,但我在同一个文件中定义了这两个。事实上,我在getListItemsGeneric之后直接定义了gatherItemInfo,它们都处于同一级别--我将修改原始帖子以更好地反映这一点。@AurumPotabile:我的答案是这两个函数对彼此的可见性无关紧要。计算onclick属性,以便在窗口对象中查找函数。这些函数是在窗口上定义的,还是在不同的范围内定义的?在您发布后不久,我就解决了这个问题--这两个函数在$(document)中一起。准备好了,但当我将GathereItemInfo移出$(document)后,getListItemsGeneric就能够找到它。