,化妝。每()等待我使用<code>html2canvas</code>轉換html2canvas轉換元件,以DataURL
我解析使用.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作用異步](https://stackoverflow.com/questions/30811253/canvas-image-cropper-canvas-todataurl -is-acting-asynchronously-do-this-retur) –
你可以做的是爲每個異步啓動('html2canvas'我猜)遞增一個變量並將其傳遞給回調函數,以便元素知道哪個索引它必須放在數組 – Kaddath
不試圖說出來,我實際上是這樣說的;)添加了一個例子 – Kaddath