Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.01.2013, 19:14
Кандидат Javascript-наук
Отправить личное сообщение для zzzzzz Посмотреть профиль Найти все сообщения от zzzzzz
 
Регистрация: 25.09.2012
Сообщений: 111

Работа с элементами вызванные с помощью $.ajax()
C помощью $.ajax() вытаскиваю в блок(div#ajaxBlock) некий контент в виде html.
Теперь не могу назначать методы к ссылкам которые подтянулись аяксом в блок ajaxBlock.

Тоесть если ссылка загрузилась вместе с основной html страницей то этой ссылке могу назначить например метод клик и далее .css() и т.д и т.п, а если эту ссылку я вытащил аяксом то к ней уже методы не применяются. Почему и как испарвить, заранее спасибо.

Если неправильнео сформулировал проблему, отпишите пож-ста я постараюсь испарвиться
Ответить с цитированием
  #2 (permalink)  
Старый 28.01.2013, 19:42
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

или используйте bind на вновь добавленные элементы, так как они еще не являются слушателеми событий, либо когда создаете слушателя используйте метод on

про bind мона тута почитать Обработка событий ('Pro jQuery' на smarly.net)

про on -- тута http://api.jquery.com/on/

Последний раз редактировалось mullih, 28.01.2013 в 19:44.
Ответить с цитированием
  #3 (permalink)  
Старый 28.01.2013, 20:17
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Подобный вопрос - раз в пол часа ))
Ответить с цитированием
  #4 (permalink)  
Старый 28.01.2013, 23:47
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

Сообщение от danik.js Посмотреть сообщение
Подобный вопрос - раз в пол часа ))
offtop
+1 чтото народ понесло или на аякс или на не знаю что, но почему то пошла проблема непонимание причинно-следственных связей событий и элементов
Ответить с цитированием
  #5 (permalink)  
Старый 23.02.2013, 23:06
Кандидат Javascript-наук
Отправить личное сообщение для zzzzzz Посмотреть профиль Найти все сообщения от zzzzzz
 
Регистрация: 25.09.2012
Сообщений: 111

Друзья, к сожалению не получилось.
как я уже говорил в блок div#ajaxBlock вытащил ссылку аяксом, как вы сказали эта ссылка еще не является слушателем и я сделал так дабы проверить
$('#ssilka').bind("click", function(){
		alert('hhhhhhhhh');
	});

не получилось. Помогите разобраться
Ответить с цитированием
  #6 (permalink)  
Старый 23.02.2013, 23:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

потому что ссылки как таковой не сущевует, когда исполняется код, который вешает обработчика.

по идее, он должен был выдать ошибку о том, что такого элемента не существует на странице, но эта глупая жиквери....

решение легкое... слушать все поступаюшие события клика на странице и фильтровать нужные

это называется делегирование событий.

обычно обработчик вешается на какой-нибудь самый первый элемент (html, body, или родитель, куда подгрузится ajax-контент)

в разных библиотеках это делается по разному

в жиквери:

$("body").on("click", "#ssilka", function (e) { /* ... */ });
Ответить с цитированием
  #7 (permalink)  
Старый 23.02.2013, 23:22
Кандидат Javascript-наук
Отправить личное сообщение для zzzzzz Посмотреть профиль Найти все сообщения от zzzzzz
 
Регистрация: 25.09.2012
Сообщений: 111

melky, спасибо сработало, но пока я ждал вашего ответа наткнулся на .live(). если в моем примере bind поменять на live то опять же все срабатывает. НО написано что live устарел, теперь пользоваться только .on() ??? и если не трудно ответьте в 2 словах почему bind live устарели?
Ответить с цитированием
  #8 (permalink)  
Старый 23.02.2013, 23:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от zzzzzz
НО написано что live устарел, теперь пользоваться только .on() ???
on - комплексный метод

live содержит в себе вызов on; тем более, что live скоро будет вовсе удален из библиотеки
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с элементами drag&drop RodgerFox Элементы интерфейса 0 15.12.2012 16:41
Не передаются данные с помощью $.ajax({}) в папку. saturn Элементы интерфейса 5 22.11.2011 19:44
Проблема с элементами, добавленными с помощью append() n1ko jQuery 2 20.11.2011 21:37