好的,所以我使用Q.js帮助保持用户通知可能长时间计算的异步(使用setTimeout,零延迟重复调用函数一定次数)。
然而,这不起作用:
var status = d3.select('#status');
var t = transfer({
N: 100
});
t.then(function (values) {
status.text('');
column_chart(values);
}, function (error) {
status.text('There was an error calculating the transfer probabilities')
}, function (progress) {
status.text('Calculating ' + Math.round(progress) + '%');
});
由于某种原因,在resolve,reject和progress函数中未定义status元素。但是,如果我用status.text
替换每个d3.select('#status').text
,那么一切正常。关于为什么我不能使用缓存元素,我有点困惑?
答案 0 :(得分:1)
好的,我的缓存元素的名称有问题!
<!--use the code for top fixed header-->
<div class="navbar-fixed-top">header area <div>
<!--use the code for align the area in the middle-->
<div class="vertical-center-row">middel area</div>
<!--use the code for sticky footer-->
<div class="navbar-fixed-bottom">footer area</div>
[enter link description here][1]
[1]: http://jsfiddle.net/froszacn/8/
更改名称解决了问题
var status = d3.select('#status');
事实证明,我的承诺函数状态是原始HTML元素,当然没有文本方法。这是奇怪的事情,其中所有具有ID的DOM元素被添加到全局窗口对象...