【发布时间】:2017-08-31 16:00:19
【问题描述】:
我正在使用html2canvas 转换html2canvas,
我正在使用.each 解析html,然后将元素传递给html2canvas。在元素转换为DataURL 之后。我将它推送到数组content。
$('.itinerary-section-detail').each(function( index, element ) {
setTimeout(function() {
console.log(element);
html2canvas(element).then(function(canvas) {
element.appendChild(canvas);
elem = canvas.toDataURL();
var item = {};
item["image"] = elem;
item["width"] = 595;
content.push(item);
});
}, 4000);
});
但问题在于将元素转换为 DataURL 的时间会有所不同。这就是为什么元素的顺序是随机的。所以我需要等到一个元素被转换为DataURL,将它推入content数组,然后从.each进入下一个元素。
请在这里给我建议一个方法。试过setTimeout,没用。
【问题讨论】:
-
看来
.toDataURL()是同步的toDataURL acting async -
您可以做的是为每次异步启动增加一个变量(我猜是
html2canvas)并将其传递给回调,以便元素知道它必须放在哪个索引中数组 -
不是想说,我其实是在说;)添加了一个例子
-
我认为this answer昨天没用?
-
@JaromandaX 和昨天不一样了。这是关于
.each并在其中将元素转换为DataURL和问题排序元素
标签: javascript jquery promise html2canvas