Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2012, 15:30
Аспирант
Отправить личное сообщение для mirek Посмотреть профиль Найти все сообщения от mirek
 
Регистрация: 21.05.2012
Сообщений: 49

JQuery После клонирования по id обращение к элементам клона
После клонирования по id происходит обращение к элементам клона, а не родителя

$("#div_id").clone(true).appendTo("#clone1").attr( "id", "Clone1");

А мне нужно в клоне только сохранить оригинал.

При том я даже изменяю id главного элемента как видно из строки

Что не так ? Или так и должно быть ?


Может необходимо изменять id всех подэлементов клона ?

А не предусмотрена ли в JQuery возможность копирования ?
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2012, 15:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

mirek,
true - уберите - тогда не будут копировацо события
$("#div_id").clone().appendTo("#clone1").attr( "id", "Clone1");
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2012, 15:56
Аспирант
Отправить личное сообщение для mirek Посмотреть профиль Найти все сообщения от mirek
 
Регистрация: 21.05.2012
Сообщений: 49

Сообщение от Deff
true - уберите
Я убрал true. Но все равно тогда при записывании картинки по определенному id происходит ее запись в клон, а не оригинал

Конкретно картинка записывается при помощи appendChild javascript-ом

Я подумал, а что если не использовать метод clone JQuery, а просто копировать div при помощи innerHTML

Тогда в последующем можно будет восстановить этот div с событиями из HTML ?
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2012, 16:20
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Если бы вы сделали маленький запускаемый пример HTML, то это бы ответило на многие вопросы.

Я, к примеру, не понял проблемы.

Сообщение от mirek
Тогда в последующем можно будет восстановить этот div с событиями из HTML ?
нет.
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2012, 16:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

melky, Наверно тогда через исп-ть обратный вызов. $("#Y").replaceWith()
Ответить с цитированием
  #6 (permalink)  
Старый 06.06.2012, 19:55
Аспирант
Отправить личное сообщение для mirek Посмотреть профиль Найти все сообщения от mirek
 
Регистрация: 21.05.2012
Сообщений: 49

Пример очень простой
Но с использованием JQuery. Поэтому я думаю не заработает
<div id="clone" style="font-size:10px;"></div> 

<div id="img_id">
<div id="ne">
	<img id="main_img" src="" width="350" height="300" />
	<div id="wrapper">
            <div id="able">
   	    </div>
     	</div>
       
	</div>

$("#img_id").clone().appendTo("#clone");


После выполнения $("#img_id").clone().appendTo("#clone");

Инструкция document.getElementById("img_id").src = "src" присваивает путь к файлу клону, а не оригиналу
Соответственно картинка отображается в div id="clone", а не div id="img_id"
Ответить с цитированием
  #7 (permalink)  
Старый 06.06.2012, 20:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от mirek
Инструкция document.getElementById("img_id").src = "src" присваивает путь к файлу клону, а не оригиналу
Нарисуйте инструкцию и HTML исходника для clone - может стоить менять id для img и нафига переходить из jQuery в чистый ява; и почему не делать через класс img(не через id) на parent() (* или parens()
Ответить с цитированием
  #8 (permalink)  
Старый 06.06.2012, 20:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

$("#img_id").clone().removeAttr("id").appendTo("#clone");
Ответить с цитированием
  #9 (permalink)  
Старый 06.06.2012, 22:37
Аспирант
Отправить личное сообщение для mirek Посмотреть профиль Найти все сообщения от mirek
 
Регистрация: 21.05.2012
Сообщений: 49

Сообщение от melky
$("#img_id").clone().removeAttr("id").appendTo("#c lone");
Проблема в том, что в дальнейшем требуется восстановление оригинала из клона

Я например сейчас попробовал еще делать приблизительно похожее

Сразу же после appendTo изменял id всех элементов

Сложности возникают при попытке восстановить сохраненный таким способом div с сохранением всех его свойств
Ответить с цитированием
  #10 (permalink)  
Старый 07.06.2012, 01:28
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

<div id="clone" style="font-size:10px;"></div> 

<div id="img_id">
<div id="ne">
	<img id="main_img" src="" width="350" height="300" />
	<div id="wrapper">
            <div id="able">
   	    </div>
     	</div>
       
	</div>

$(".img_id").clone().attr("id", "clone_image").appendTo("#clone");
document.getElementById("clone_i mage").src = "src"

После клона появляется два элемента #img_id, соответственно document.getElementById("img_id") берет первый.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery Проблема с append после клонирования талицы vuler Общие вопросы Javascript 0 04.04.2012 00:28
Задержка после присвоения класса в jQuery surzhikov jQuery 1 05.10.2011 03:29
обращение к списку через jquery sharomet Events/DOM/Window 1 03.10.2011 23:06
jquery не срабатывает find после ajax versoul jQuery 7 09.09.2011 16:20
Селекторы в jquery (обращение) kuzroman jQuery 2 09.08.2011 12:54