Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2013, 16:58
Аспирант
Отправить личное сообщение для зверек Посмотреть профиль Найти все сообщения от зверек
 
Регистрация: 18.06.2009
Сообщений: 88

без ajax работает, а с ним - нет
есть вот такой код
<div class="photo"><img src="images/edit.gif" />
	<div class="functional_icons"><?=icons()?></div>
</div>


Который выводит кликабельные иконки (функция icons() )
На странице подключается скрипт icons.js, который отрабатывает клики по этим иконкам так:

$(".functional_icons img").click(function(){
...
})


все чудесным образом работает.

Но, стоит мне попытаться подгружать иконки аяксом

$.post("icons_ajax.php", {source:1, source_id:36}, function(response)
	{
			$('.functional_icons').html(response);
			
	});



<div class="photo"><img src="images/edit.gif" />
	<div class="functional_icons"></div>
</div>


как все перестает работать. Точнее, иконки аяксом подгружаются, но они не кликабельны.
Почему?

в файле icons_ajax.php та же функция icons().

конечный html код в первом и во втором варианте (firebug) совершенно одинаковый.

Последний раз редактировалось зверек, 23.04.2013 в 17:02.
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2013, 17:33
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Подключайте через on
http://api.jquery.com/on/
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2013, 17:45
Аспирант
Отправить личное сообщение для зверек Посмотреть профиль Найти все сообщения от зверек
 
Регистрация: 18.06.2009
Сообщений: 88

получилось через delegate. ура!

вместо
$(".functional_icons img").click(function(){
...
})


сделал
$("body").delegate(".functional_icons img", "click", function(){
...
}
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2013, 17:47
Аспирант
Отправить личное сообщение для зверек Посмотреть профиль Найти все сообщения от зверек
 
Регистрация: 18.06.2009
Сообщений: 88

Сообщение от vadim5june Посмотреть сообщение
Подключайте через on
http://api.jquery.com/on/
я так понял, что это тоже самое, что и delegate, только работает начиная с 1.7, да?
Ответить с цитированием
  #5 (permalink)  
Старый 23.04.2013, 17:57
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от зверек Посмотреть сообщение
я так понял, что это тоже самое, что и delegate, только работает начиная с 1.7, да?
я думаю тоже самое что live
все динамически созданные элементы не будут работать с click нужно заменить
Ответить с цитированием
  #6 (permalink)  
Старый 23.04.2013, 18:07
Аспирант
Отправить личное сообщение для зверек Посмотреть профиль Найти все сообщения от зверек
 
Регистрация: 18.06.2009
Сообщений: 88

а если я делаю так, то снова не работает
$('.photo').mouseover(function()
	{
		$.post("icons_ajax.php", {source:1, source_id:36}, function(res)
		{
			$('.functional_icons').html(res).show();			
		}); 
	
	})

При наведении на открывшееся окошко мышкой бесконечно посылаются ajax запросы. А кликабельность иконок снова не работает.
Ответить с цитированием
  #7 (permalink)  
Старый 23.04.2013, 19:33
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Нет надо с ON
$(".functional_icons img").on("click", function(event){
  ...
});
Ответить с цитированием
  #8 (permalink)  
Старый 24.04.2013, 10:01
Аспирант
Отправить личное сообщение для зверек Посмотреть профиль Найти все сообщения от зверек
 
Регистрация: 18.06.2009
Сообщений: 88

Сообщение от vadim5june Посмотреть сообщение
Нет надо с ON
$(".functional_icons img").on("click", function(event){
  ...
});
Не работает. Специально скачал jquery 1.9. Но увы.
Не работает даже тот вариант (из описанных выше) который работал с delegate.

А последний вариант и с delegate не работает. так что вопрос в силе, буду рад помощи.
Ответить с цитированием
  #9 (permalink)  
Старый 24.04.2013, 11:31
Аспирант
Отправить личное сообщение для зверек Посмотреть профиль Найти все сообщения от зверек
 
Регистрация: 18.06.2009
Сообщений: 88

в общем в ж... mouseover и mouseout. Надо использовать .hover()
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает JS после подгрузки div через ajax BoB AJAX и COMET 3 09.12.2011 03:03
Как работает обработчик в файле, подгруженном AJAX SweetySugar AJAX и COMET 1 20.08.2011 17:17
IE 6, jquery, не работает ajax Прохожый jQuery 3 01.06.2010 17:20
не работает AJAX запрос zokeoner AJAX и COMET 2 02.03.2010 11:38
JS меню работает на обычной html странице, а на юкозовском движке нет. adware Я не знаю javascript 10 16.05.2009 16:48