| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Функия не работает на вновь добавившиеся элементы |
| Автор: Serious2008 17.5.2013, 15:59 | ||||||
Здравствуйте, у меня есть вот такая простая функция
ну и например вот такие картинки
Когда они грузятся сразу же с документом то скрипт всё нормально срабатывает, когда я через аякс добавляю ещё несколько картинок в этом же формате.
То уже при наведении на новые скрипт не срабатывает, а на старые срабатывает. Подскажите пожалуйста в какую сторону копать чтобы тоже работал? |
| Автор: Arantir 17.5.2013, 16:33 | ||
Как вы представляете себе работу этой функции?
В программировании нет "магии". Все куда прозаичнее. $('.img2') возвращает массив элементов с классом "img2", это понятно. Функция hover устанавливает каждому из этих элементов указанную функцию (которая вызывается при наведении). Следовательно, указанная функция сработает только для тех элементов, которые вернула $('.img2'), иными словами, только для тех элементов, которые присутствовали на странице в момент вызова приведенной вами функции. |
| Автор: Serious2008 17.5.2013, 16:37 | ||
Вот чтобы обмануть это дело, я сделал функцию update, которая как я думал обновит это дело я её вызываю уже после получения новых элементов.
Которая как я надеялся обновит это дело, но оно не помогло. По этому очевидный вопрос как это можно ещё раз обновить? Или тут уже только обновление страницы? |
| Автор: Sanchezzz 17.5.2013, 16:41 |
| Можно не на добавленные сделать события потом вставить в общий документ либо переопределить заново выполнив ваш код после вставки данных яксом. или повесить события через live или если 1.7 версия+ то через on Добавлено @ 16:44 Сделайте демку на jsfiddle.net или полный код, с версткой категорически нет желания лепить таблицу=) |
| Автор: Arantir 17.5.2013, 16:55 | ||||
Сайт jQuery еще не закрыли, http://api.jquery.com/on/
|
| Автор: Sanchezzz 17.5.2013, 17:07 | ||
document замените по возможности на не изменяющийся див желательно с уникальным ID селектор работает быстрей по #id |
| Автор: Serious2008 17.5.2013, 17:17 | ||||||||||
Такое же но с .on не спасло. http://jsfiddle.net/C3pMs/1/ вот я набросал но я не понимаю почему по кнопке ещё он не подгружает ещё изображения, а жалуется на то юзайте $.POST Добавлено через 5 минут и 10 секунд
О вот с этим отлично заработало, спасибо. |
| Автор: Sanchezzz 17.5.2013, 17:34 |
| Первый вариант у вас не сработал то что вы не указали параметр какой селектор прослушивать, если параметр не указан то используетс последний указатель в данном случаи это $( '.img2' ) .on({ event: function(){}, evetn2:function(){} } , '.img2 > img'); |