2016-04-10 6 views
0

以下のスクリプトは、要素を複製して適切な場所に挿入するとうまくいく場合がありますが、原文が消えてしまい、理由を理解できない場合があります私のコードに何か問題がある場合は?クローンの問題 - 一部のインスタンスでオリジナルが消える

スクリプトの一般的な考え方は次のとおりです。ウェブアドレスに灰色のタグがあるとき(ある要素をクリックした後にソーシャルメディアに投稿するとき)、リンクに続く人々はその要素を一番上に表示しますページの上で説明した問題のほかに、スクリプトはうまく機能します。

var hashtag = window.location.hash.substr(1); 

$(window).load(function() { 
    var hashid = ('#' + hashtag); 
    if (hashtag ==="") { 
     $("#tosee").removeClass("show").addClass("hide"); 
    } else { 
     var oritosee = $(hashid).clone(true); 
     oritosee.insertAfter('#tosee'); 
     $("#tosee").addClass("show"); 
    }; 
}); 

私は - skobaljicからのヒントを得ました。重複IDの問題でした。

だから私のソリューションは、クローニングされたIDに変更することでした:彼らはハッシュタグでページを開く場合は、ブラウザのスクロール、

oritosee.attr('id', oritosee.id + '_' + 'clone'); 
+0

を要素に至るまでそのため、このスクリプトはまったく必要ありません。反対に、一意のIDで要素を複製することは、無効な重複を作成するよりも良い考えではありません。 – skobaljic

+0

ああ、それは良い点だ、それは重複したIDの問題かもしれない。 (私はそれをこのようにしています。なぜなら、問題の要素は閉じたdivに埋め込むことができるからです)。 – Sergelie

+0

@skobaljic、あなたが完全に正しい、yがidを変更した場合、それは動作します! oritosee.attr( 'id'、oritosee.id + '_' + 'clone'); – Sergelie

答えて

0
oritosee.attr('id', oritosee.id + '_' + 'clone'); 

(クローン化された要素のIDを変更することで、重複したIDを避けてください)

関連する問題