我有 2 个 javascript 函数,第一个是加载 ajax 内容的函数(通过另一个函数),第二个是回调函数。他们看起来像:
function createReply(callBack){
ajaxPage('test.html', 'next-reply');
callBack();
}
function updateNext(){
document.getElementById('next-reply').id = "reply-item";
}
createReply(updateNext);
如您所见,我正在调用该createReply()
函数并将回调函数的名称传递给它,在这种情况下updateNext()
在createReply()
函数中,我正在调用另一个通过 ajax 加载内容的函数。当这个函数完成时,回调应该被执行。回调会更改正在加载 ajax 内容的 div 的 id。这就是问题发生的地方
我收到错误消息:
Uncaught TypeError: Cannot set property 'innerHTML' of null
也就是说,它不能更改 id 为“ next-reply ”的元素的内容,因为它不存在,而它不存在的原因是因为回调函数更改了该元素的 id。目的是在加载 ajax 内容后触发回调(即,在ajaxPage()
函数执行后)
任何人都可以看到问题是什么?有没有更好的方法在纯 javascript 中实现回调函数?
PS:没有 jQuery