2016-04-10 5 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:

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

Если открыть страницу с хэштегом, затем свитки браузера вплоть до элементов. Вот почему вам совсем не нужен этот скрипт. С другой стороны, клонирование элемента с уникальным идентификатором не является хорошей идеей, чем создание дубликатов, что является недопустимым. – skobaljic

+0

О да, это хороший момент, это может быть проблема с дубликатом идентификатора. (Я делаю это так, потому что этот элемент может быть запущен в закрытом div). – Sergelie

+0

@skobaljic, вы были совершенно правы, если меняют идентификатор, это работает! oritosee.attr ('id', oritosee.id + '_' + 'clone'); – Sergelie

ответ

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

(во избежание дублирования идентификаторов путем изменения клонированный идентификатор элемента)