Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.11.2015, 22:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

pnpquest,
скажу больше: у вакуумного коня даже метода append может не быть, но в целом с вами согласен, то что определено когда-то, нет нужды определять снова.
Ответить с цитированием
  #12 (permalink)  
Старый 13.11.2015, 08:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,156

Сообщение от Floyd
вот представь
Зачем что-то "представлять"?
Просто сделай тестовый пример, как я - сразу все и прояснится.
Ответить с цитированием
  #13 (permalink)  
Старый 13.11.2015, 11:33
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

парни, всё что написано выше - предельно ясно. вы сохранили this, послали аякс (не меняющий дом) и приаппендили через фактически, this, потому что DOM не изменился.
я же объяснил в первом посте: окно с редактированием я получаю аяксом, делаю аппенд к боди, при нажатии в нем сохранить и отправке формы аяксом это окно вырезается из DOM. а вот после этого я меняю табличку.
вопрос конкретно в следующем: как сохранить this любого элемента DOM (в моем случае таблицы), чтобы при смене DOM (но элемент, в моем случае таблица, гарантированно останется) обратиться к элементу напрямую?
Ответить с цитированием
  #14 (permalink)  
Старый 13.11.2015, 11:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

Floyd,
если элемента нет -- к нему нельзя сделать ссылку заранее.(делегирование тут тоже не поможет, если нужен сам элемент, которого нет)

Последний раз редактировалось рони, 13.11.2015 в 11:40.
Ответить с цитированием
  #15 (permalink)  
Старый 13.11.2015, 11:48
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

элемент есть. сохранил его в переменную.
приаппендил еще ряд дивов снизу. дом изменился? видимо, да.
что произошло с элементом? остался на странице. а в переменной его уже нет. верно?
Ответить с цитированием
  #16 (permalink)  
Старый 13.11.2015, 15:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,156

Floyd, если элемент остается (именно тот же элемент) на странице, при любых ее изменениях - ссылка как была на него, так и останется.

Тестовые примеры, я так понял, ты делать не собираешься... Так и будешь на пальцах пытаться чего-то объяснять?

Последний раз редактировалось ksa, 16.11.2015 в 08:53.
Ответить с цитированием
  #17 (permalink)  
Старый 13.11.2015, 15:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,156

Сообщение от Floyd
вот представь, мы сейчас делаем $(document.body).append("<div>новое окно</div>").
а после этого alert(obj.innerHTML)
будет ли после аппенда в obj тот самый li?
Попробовать самостоятельно ты так и не удосужился...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('li').click(function(){
		var obj=this;
		$(document.body).append("<div>новое окно</div>");
		setTimeout(function(){
			alert(obj.innerHTML);
		},1000);
	});
})
</script>
</head>
<body>
<ul>
	<li>0</li>
	<li>1</li>
	<li>2</li>
	<li>3</li>
</ul>
</body>
</html>
Ответить с цитированием
  #18 (permalink)  
Старый 13.11.2015, 16:51
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

ksa, спасибо за помощь.
почему не делаю пример - боязнь ошибиться в кавычках, незнание как его отладить здесь на форуме и тп.
думал, объяснить на пальцах можно и получить ответ от знающих изнутри. мой пробел - я плохо знаю как происходит работа с DOM, когда и как он перестраивается и тд. нужно сесть вкурить ртфм один раз, исправлюсь.
всё же: я правильно понял, что при любых аппендах-препендах у меня не андефайнётся obj? даже если врутрь твоего li динамически добавить span? сейчас не агитирую к созданию примера, прошу подсказать где почитать доходчиво про перестройку DOM и потерю объектов.
еще раз спасибо!
Ответить с цитированием
  #19 (permalink)  
Старый 16.11.2015, 08:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,156

Сообщение от Floyd
я правильно понял, что при любых аппендах-препендах у меня не андефайнётся obj? даже если врутрь твоего li динамически добавить span?
Да хоть гром с неба...
Пока на странице есть именно этот элемент, в переменной будет ссылка именно на него.
Ответить с цитированием
  #20 (permalink)  
Старый 16.11.2015, 09:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

Сообщение от ksa
Пока на странице есть именно этот элемент
можно даже удалить
Сообщение от ksa
в переменной будет ссылка именно на него.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить быстро перезагружаемую страницу? avatator Общие вопросы Javascript 8 16.05.2013 01:39
Как понять, что элемент точно удалён из Dom Slavchic Общие вопросы Javascript 6 15.05.2013 01:49
как добавить свойство объекта в объект в объекте ? %) mitiya Общие вопросы Javascript 1 07.10.2012 14:46
Как сохранить объет в память? vitorrio Общие вопросы Javascript 5 07.09.2012 17:47
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26