Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с элементами, добавленными с помощью append() (https://javascript.ru/forum/jquery/23338-problema-s-ehlementami-dobavlennymi-s-pomoshhyu-append.html)

n1ko 20.11.2011 18:51

Проблема с элементами, добавленными с помощью 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() работали так же хорошо, как и через код? Или есть другие функции?

ksa 20.11.2011 19:03

Цитата:

Сообщение от n1ko
Проблема с элементами, добавленными с помощью append()

Как бы ты не добавил новые элементы, у них нет того обработчика. Его таки нужно добавить... ;)

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

DjDiablo 20.11.2011 21:37

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

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();


Часовой пояс GMT +3, время: 09:01.