我发现在尝试学习Jquery时要完全理解回调范围有一些问题.我想补充一点,我对Javascript语言的经验很少代码:
var globDom; // placeholder for DOM fragment // Getting xml file; jquery parses the file and give me back a DOM fragment // saveXML is the callback $.get(requestTarget, {}, saveXML); // the globDom here is UNDEFINED ! alert(globDom); // the callback function saveXML(xmlDom) { globDom = xmlDom; }
我相信在这里我有一个很大的误解......
有什么建议吗?
谢谢
丹尼尔
啊啊.非常清楚,我完全理解我的假设中的错误:我忘记考虑到数据访问时间(之前的!)和内容可用时间之间的时间间隔.一个相当严重的缺陷 - 批量编程有偏见:-(问题很明显,我现在可以正确解决它.很多,非常感谢您的回应!
我自己没有使用过jquery,但我的理解是它所做的很多事情都是异步的.该get方法可能不会立即调用您的回调.在尝试访问globDom之前,您需要等到回调运行之后.
尝试在回调方法中发出警报.这个是在get()之后发出警报之前还是之后发生的?