动态创建div时,不显示画布中的图像

时间:2012-10-10 12:04:37

标签: jquery html canvas

代码:

$(document).ready(function(){
    $("#AddButton").bind('click', function(event){


    if(document.getElementById('optionselectthree').value=='drawtab')
    {
    divshow();
    clone();
    event.stopPropagation();

    }
    else if(...)
    {

    ..

    }


    });
 });

divshow()函数:

function divshow(){

var newImageBoxdiv = $(document.createElement('div')).attr("class",'demo');

newImageBoxdiv.html('<img id="Imagedisplay" style="background-repeat: no-repeat; width:auto; width:100%; height:100%; cursor:move; position:absolute;" />');

newImageBoxdiv.insertAfter("#imagedemo");
$('.demo').show(); 
}

clone()函数:

function clone(){

var c=document.getElementById("can");
var d=c.toDataURL("image/png");

document.getElementById("Imagedisplay").src=d;

}

嗨大家好,我试图在画布上绘制一个图像,然后在div上显示绘制的图像(clone()函数),使用divshow()函数动态调用。问题是当我点击#AddButton时,它会在图像src正确时显示没有图像的div。

1 个答案:

答案 0 :(得分:0)

我怀疑你在toDataURL完成之前设置了src。一旦toDataURL完成,您可能需要使用回调来触发,并在其中设置src。在设置src之前尝试记录d的值以检查它。

不幸的是,我自己也遇到过这个问题,并且不知道向toDataURL添加回调的确定方法。 toBlob有一个但似乎没有正确实现。