看板 Ajax 關於我們 聯絡資訊
大家好,很抱歉我標題下的很奇怪 因為我很難很清楚的一句話描述我的問題 我的問題如下程式碼 就是我使用外掛原件去製作成圖片 然而我有很多div需要製作後在一起合併成PDF 問題就是我該如何在onrendered: function內 傳入index的數值進去,去知道說我現在是做第幾個DIV 然後存到array內 var imgData = []; $.each($(DivId), function(index, value) { imgData.push(null); html2canvas($(this), { onrendered: function(canvas) { imgData[index] = CanvasResize(canvas); } }); }); // 210mm = 793.700787px // 50px = 13.229167mm setTimeout(function() { var pdf = new jsPDF('p', 'mm', [297, 210]); $.each($(DivId), function(index, value) { if(index!=0) pdf.addPage(); pdf.addImage(imgData[index], 'png', 20, 20, 170, 0, null, 'NONE'); } pdf.save(FileName + ".pdf"); document.body.style.zoom = 1.0; }, 3000); 網頁顯示 http://pastie.org/10693231#2-9 謝謝大家:) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.29.189 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1453111873.A.578.html
LPH66: 包一層 closure 起來 01/18 20:24
LPH66: onrendered: (function(index){return function(canvas){ 01/18 20:24
LPH66: /*...*/}; })(index) } 01/18 20:25
LPH66: 啊, 上一行最後的 } 是物件結束的 } @@ 01/18 20:25
aaa7513231: 第一次知道closure這東西!!!!!!!!! 01/18 21:08
aaa7513231: 感謝L大!!!!!,明天來試試:) 01/18 21:08
mmis1000: 現在的話,比較推薦 Function.prototype.bind 歐... 01/20 23:46
mmis1000: 這個效果跟用closure差不多,但是版面乾淨很多 01/20 23:47
mmis1000: 缺點是太舊的瀏覽器可能不支援 01/20 23:47
mmis1000: 結果是(function(index, canvas){}).bind(null, index) 01/20 23:50