Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2011, 19:08
Интересующийся
Отправить личное сообщение для Alexd Посмотреть профиль Найти все сообщения от Alexd
 
Регистрация: 05.05.2011
Сообщений: 15

Манипулирование добавленным элементом в jQuery
Начал не давно изучение jQuery и сразу столкнулся вот с такой проблемой. Почему с только что добавленным элементом нельзя производить манипуляции, например заменить его так же как <div>Первый Div</div> в приведенном примере. И хотелось бы узнать как это делается правильно.
<div>Первый Div</div>
<button>Создать</button>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function() {
    $("body").append("<div>Еще один Div</div>");
  });
  $("div").click(function() {
    $(this).replaceWith("<div>Заменен</div>");
  });
});
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2011, 22:03
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Потому что вы обработчик вешаете после загрузки страницы, когда второго ДИВа еще не существует.
Так работает:
<div>Первый Div</div>
<button>Создать</button>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function() {
    $("body").append("<div>Еще один Div</div>");
    $("div").click(function() {
       $(this).replaceWith("<div>Заменен</div>");
    });
  });
});
</script>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2011, 02:04
Интересующийся
Отправить личное сообщение для Alexd Посмотреть профиль Найти все сообщения от Alexd
 
Регистрация: 05.05.2011
Сообщений: 15

Спасибо за ответ, более менее разобрался. Непонятно остается только одно, - почему <div>Первый Div</div>, можно заменить только тогда, когда будет добавлен <div>Еще один Div</div>
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2011, 10:09
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Так потому что теперь уже событие вешается после добавления)))
Вешайте событие при загрузки страницы, и при добавление элемента вешайте ему тоже событие, вот так:

<div>Первый Div</div>
<button>Создать</button>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function() {
    $("<div>Еще один Div</div>").appendTo("body")click(function() {
       $(this).replaceWith("<div>Заменен</div>");
    });
  });
  $("div").click(function() {
     $(this).replaceWith("<div>Заменен</div>");
  });
});
</script>


Хех, забыл, в JQuery есть такое как live()
Так вроде должно работать:
<div>Первый Div</div>
<button>Создать</button>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function() {
    $("body").append("<div>Еще один Div</div>");
  });
  $("div").live('click', function() {
    $(this).replaceWith("<div>Заменен</div>");
  });
});
</script>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 13.05.2011 в 10:16.
Ответить с цитированием
  #5 (permalink)  
Старый 13.05.2011, 16:30
Интересующийся
Отправить личное сообщение для Alexd Посмотреть профиль Найти все сообщения от Alexd
 
Регистрация: 05.05.2011
Сообщений: 15

Еще раз спасибо, все вопросы для меня теперь решены. Понимаю что мне еще многому надо учиться в javascript, но благодаря таким полезным и содержательным ответам, время на изучение сократится в разы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54