2
$(document).ready(function() {

     var clone = $("#me_flash_0").clone(true);

     if($('video').attr('class') == "pause_0"){
          $("#me_flash_0").remove();    
     }

     $('.top_item img').click(function(){
            $("#me_flash_0_container").html(clone);
            $(this).hide();     
     });

}

#me-flash_0<embed>要素です。そして#me_flash_0_container、ラッピングコンテナです。問題は、複製されたオブジェクトが空のように見えることです。html(clone)効果はありません。

Firebugはエラーを表示しません。

これが関連するhtmlです

<div id="me_flash_0_container" class="me-plugin">
   <embed id="me_flash_0">
</div>
<video class="pause_199" width="586px" height="440" src="some link" autoplay="true" tabindex="0" style="display: none;"></video>

何か案は?

4

4 に答える 4

1
    $(document).ready(function() {

         var clone = $("#me_flash_0").clone(true);

         if($('video').attr('class') == "pause_0"){
              $("#me_flash_0").remove();    
         }

         $('.top_item img').click(function(){
                $("#me_flash_0_container").children().remove();
                $("#me_flash_0_container").append(clone);
                $(this).hide();     
         });

    });

.html()@techfoobar が書いたように、jQuery オブジェクトを追加するために使用することはできません。また、JavaScript の末尾に終了括弧がありませんでした。

編集:同様の問題に関するこのコメントを参照してください。

于 2012-07-15T09:29:01.717 に答える
1

これは、jQuery と複製オブジェクト要素のバグのようです。

http://bugs.jquery.com/ticket/10324を参照してください。

これを回避する方法として、オブジェクトの親コンテナーのコンテンツを非表示のテキストエリアにコピーし、このテキストエリアの val() を使用して新しいオブジェクトを複製する方法があります。

ここで同様のアプローチを参照してください: Silverlight 埋め込みオブジェクトのクローンを作成すると、空の白い要素が生成されます。

于 2012-07-15T09:11:44.310 に答える
0

これを引き起こしている可能性のある問題...

  • オブジェクトをDOM準備完了でキャッシュしています。
    オブジェクトは、関連するコードから開始すると空のように見え、それが変数にキャッシュされます。(終了タグも追加する必要があり</embed>ます)。要素に何が表示されるかわからないので、何も起こらないという事実が期待どおりか機能的でない
    かはわかりません..embed
  • これは、DOMの最初の$('video').attr('class')要素に適用されたクラスを返します。サンプル コードでは、. ただし、比較すると、一致することはなく、要素は削除されません。 videoclass_199class_0#me_flash_0
于 2012-07-15T09:29:11.540 に答える
0

a)cloneは完全な jquery 拡張要素であり、html 文字列ではありません。.append(clone)代わりに行うとうまくいくはずです.html(clone)

b)関数cloneに対してローカルに宣言されていready(..)ます。クリックイベントハンドラーがいつトリガーされるかを事前に知らないため、グローバル変数に移動する必要がある場合があります

于 2012-07-12T16:05:55.737 に答える