0

私は2つの部門を持っています。すべての div には canvas 要素があります。プログラムの最初に、キャンバスに画像を配置しました。イメージは異なります。次に、次を使用してdivを交換しようとします

    var contentofmyfirstdiv = $('#myfirstdiv').html();
    var contentofmyseconddiv = $('#myseconddiv').html();

    $('#myseconddiv').html(contentofmyfirstdiv);
    $('#myfirstdiv').html(contentofmyseconddiv)

;

すべてのキャンバスが空であることを除いて、すべて機能します。「contentof...」がキャンバスから画像を取得できなかったようです...キャンバスのコンテンツを交換する方法を知っている人はいますか? 私はFirefoxを使用しています。

4

2 に答える 2

2

html にシリアライズして再解析していますが、これは損失の多い操作です。代わりに、ライブ DOM ツリーを直接操作する必要があります。

var contentofmyfirstdiv = $('#myfirstdiv').children().detach();
var contentofmyseconddiv = $('#myseconddiv').children().detach();

$('#myseconddiv').append(contentofmyfirstdiv);
$('#myfirstdiv').append(contentofmyseconddiv)

これは正義を行わないデモですが、それでもhttp://jsfiddle.net/9JdqQ/

シリアル化と比較して保持されるのは、シリアル化できない属性、イベント リスナー、要素データ (キャンバス イメージなど) です。

于 2013-06-24T15:53:41.957 に答える