Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2011, 18:51
Аспирант
Отправить личное сообщение для n1ko Посмотреть профиль Найти все сообщения от n1ko
 
Регистрация: 08.11.2011
Сообщений: 37

Проблема с элементами, добавленными с помощью append()
Есть строка, которая отвечает за добавление блока на страничку:
$('#category').append('<div class="addSubcategory"><div></div></div>');

И есть код, который отвечает за работу с этим блоком:
$('.addSubcategory').hover(
    function(){
        $(this).find('div').stop().animate({opacity: '1'}, 200);
    }, 
    function(){
        $(this).find('div').stop().animate({opacity: '0'}, 200);
    }
);

Ну так вот, когда я добавляю блок с помощью jQuery - не реагирует блок на наведение, а когда блок уже вставлен непосредственно в коде, то всё работает отлично. Что нужно сделать, чтобы элементы, добавленные через append() работали так же хорошо, как и через код? Или есть другие функции?
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2011, 19:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от n1ko
Проблема с элементами, добавленными с помощью append()
Как бы ты не добавил новые элементы, у них нет того обработчика. Его таки нужно добавить...

Либо использовать
http://jquery-docs.ru/Events/live

Последний раз редактировалось ksa, 20.11.2011 в 19:06.
Ответить с цитированием
  #3 (permalink)  
Старый 20.11.2011, 21:37
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Обьедени добавлеие элемента на страницу и создание обработчика в один метод.

function addSubCategory(){

    // добавляем элемент на страницу
    $('#category').append('<div class="addSubcategory"><div></div></div>');

    // вешаем на вновь добавленный элемент обработчик
    $('.addSubcategory').hover(
        function(){
           $(this).find('div').stop().animate({opacity: '1'}, 200);
        }, 
        function(){
            $(this).find('div').stop().animate({opacity: '0'}, 200);
        }
);

// теперь когда тебе понадобится суб категория ты просто вызовешь метод addSubCategory
// пример
addSubCategory();
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 20.11.2011 в 21:39.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема парсинга json с помощью jquery frolvict jQuery 15 16.09.2011 22:35
Проблема с выводом информации после запроса с помощью ajax Dimario AJAX и COMET 0 23.07.2011 17:08
Проблема с append snizhok jQuery 3 13.06.2011 18:51
Проблема с load в div и импортом стороннего кода с помощью javascript 1quick1 Events/DOM/Window 9 04.02.2011 13:16
проблема с элементами массива Krinart Общие вопросы Javascript 3 05.09.2008 21:06