Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает parent() на динамически созданном элементе (https://javascript.ru/forum/jquery/53702-ne-rabotaet-parent-na-dinamicheski-sozdannom-ehlemente.html)

theNuclear 14.02.2015 18:10

Не работает parent() на динамически созданном элементе
 
Необходимо найти определённые элементы по классу и при наведении курсора на их родителей, применить действия и к ним и к их родителям. Использую $('.element').parent().mouseenter(function(){...}) ; и никаких проблем нет.

Появилась необходимость создать страницу с огромным количеством таких элементов, а содержание их довольно однообразное. Чтобы не перегружать такую страницу, решил, что хорошо бы было чтобы эти элементы создавались только при необходимости. Опыта и умений у меня мало, но что хотел сделать получилось, а именно найти заранее известных родителей на такой странице и на такой же mouseenter(), до основных действий, привязать создание необходимого элемента с помощью append('...').

Элемент стал создаваться при наведении курсора и потом, как я думал, сработает mouseenter() главного скрипта и он найдёт только что созданный элемент, найдёт его родителя и проделает с ними действия. Но parent() в этом случае не заработал. Я бы подумал, что нельзя так просто работать с динамически созданными элементами, но при этом если обратиться непосредственно к родителю по его классу, то действия с созданным элементом с помощью children('.element') и с его родителем работают.

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

Вот примеры:
От элемента к родителю (не работает): http://jsfiddle.net/6s8pgdvr/.
От родителя к элементу (работает): http://jsfiddle.net/6s8pgdvr/1/.

рони 14.02.2015 18:55

theNuclear,
http://jsfiddle.net/6s8pgdvr/2/

danik.js 14.02.2015 18:57

Что делает функция $ ? В ответе на этот вопрос кроется ответ на твой вопрос.


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