2016-04-10 59 views
0

下面的腳本在克隆一個元素並將其插入到正確的位置時效果很好,儘管在某些情況下原始消失了,並且我無法弄清楚原因,能否幫助理解如果我的代碼有問題?Jquery克隆問題 - 在某些情況下原始消失

該腳本的總體思路是:當網址中有一個灰名單(當用戶點擊一個元素後發佈社交媒體時),那些將跟隨該鏈接的人將會看到該頂部呈現的元素的頁面。除了上面解釋的問題外,該腳本運行良好。

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避免重複IDS)直到元素。這就是爲什麼你根本不需要這個腳本。另一方面,使用唯一ID克隆元素不是一個好主意,比創建重複項無效。 – skobaljic

+0

哦,是的,這是一個很好的觀點,它可能是一個重複的id問題。 (我這樣做是因爲有問題的元素可能被封閉在div中)。 – Sergelie

+0

@skobaljic,你是完全正確的,如果你改變了ID,它的工作原理! oritosee.attr('id',oritosee.id +'_'+'clone'); – Sergelie

回答

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