0

次のように、内部にいくつかのimgがあるhtmlブロックのクローンを作成する必要があります。

<span class="slides_container" id="rotator1">
    <div class="slide">
      <div class="photoInfo">imagenes 1</div>
       <img src="data:image/jpg;base64,/9j...FHFf/Z" width="600" height="400" alt="pic1">           
      </div>
   </div>
   <div class="slide">
      <div class="photoInfo">imagenes 1</div>
       <img src="data:image/jpg;base64,/9j...FHFf/Z" width="600" height="400" alt="pic2">           
      </div>
   </div>
</span>

次に、このjqueryコードを使用してこのブロックのクローンを作成します。

$('#mediaViewerSlides').append(content.clone());

その結果、src attrに複製された最初の画像のみが、base64文字列の最後に次のようなGETパラメータのようなものを持っています:src = "... FHFf / Z?133487557212"この値がどのように表示されるかわかりませんまたは、なぜ、base64文字列上のこの余分なデータによって画像が無効になり、他のすべてが壊れてしまうのは明らかです。

4

3 に答える 3

0

タイムスタンプが追加される理由はわかりませんが、オブジェクト全体を複製する代わりに、新しいオブジェクトを作成して、srcその属性を同じ値に設定することができます。

$('#mediaViewerSlides').append('<img src="' + content.attr('src') + '" width="600" height="400" />');

contentこれは、がbase64ソースの画像の1つへの参照であることを前提としています。

タイムスタンプが事前に複製された要素に追加されているsrc場合は、新しい要素を作成するときにタイムスタンプを削除できます。

var source = content.attr('src');

//if the source includes a question-mark, then get everything before the character
if (source.indexOf('?') > -1) {
    source = source.split('?')[0];
}
$('#mediaViewerSlides').append('<img src="' + source + '" width="600" height="400" />');
于 2012-04-19T22:57:02.943 に答える
0

このdivのクローンを作成する必要がある理由がわかりません。イメージのソースへの参照を保持し、それをコンテナーの複製バージョンに追加してみませんか。

于 2012-04-19T23:05:04.687 に答える
0

コードまたはBase64文字列に問題があると思います。

Webでランダムな画像を見つけ、ここでbase64に変換し、このフィドルにそのような問題なしで複製したので、おそらくjQueryがクエリ文字列を追加することはありません。

于 2012-04-19T23:40:07.393 に答える