Quieteroks
29.10.2012 - 11:30
Здравствуйте.
Когда при загрузки страницы, делаю слушателей событий на какие нить классы, то после подгрузки через ajax нового содержимого, они перестают работать. Пробовал их загнать в функцию и вызывать ее, но не получилось... Только прямым вызовом вызовом вновь вешаются события.
Т.е. При загрузки страницы пишу вот такую штуку, а после загрузки нового контенат она уже не работает. Только если заново ее запустить, причем напрямую.
$('a.moreImg1').hover(function(){
$(this).find('img').stop().animate({borderColor:"#F2C797"}, 250);
}, function(){
$(this).find('img').stop().animate({borderColor:"#FFE0B2"}, 250);
});
Подскажите, как можно/нужно слушателей перезапускать?
Michael
29.10.2012 - 11:46
Через live вообще то такое делается.
Можно в принципе и заново прикреплять, только предыдущие помечать классом как "уже прикрепленные", чтоб 2 раза не навесились.
_____________
There never was a struggle in the soul of a good man that was not hard
Quieteroks
29.10.2012 - 11:54
MichaelСпасибо, часть слушателей решим вопрос.
НО, он hover не поддерживает
Игорь_Vasinsky
29.10.2012 - 11:57
live() и hover поддержиает, там любой event указать можно
Когда то меня спас и JQuery.Listen()
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Quieteroks
29.10.2012 - 11:59
Игорь_VasinskyСтранная штука, в справке написали, что не поддерживает, а ниже его используют...
Как тогда в одну функцию внпихнуть две, которые нужны для хавера...
Нашел, спасло такое вот безумие для hover:
$('a.moreImg1').live({
mouseenter:
function(){
$(this).find('img').stop().animate({borderColor:"#F2C797"}, 250);
},
mouseleave:
function(){
$(this).find('img').stop().animate({borderColor:"#FFE0B2"}, 250);
}
});
Quieteroks
29.10.2012 - 12:21
Ну в общем продолжение темы...
А как тогда плагины, типа colorbox, sprites, cycle вешать?
Пока ищу и читаю, но мож кто даст подсказку быстрее...
Игорь_Vasinsky
29.10.2012 - 12:32
http://api.jquery.com/delegate/
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Quieteroks
29.10.2012 - 12:41
Игорь_Vasinsky
Ну по клику, я уже разобрался частично... И не обязательно делегировать.
Но он для colorbox подходит, а для прочих, которые клика не требуют, уже решения придумать не могу...
Ладно, бум думать. Может скрипты попробую подгружать, после загрузки страницы.
kuzroman
2.11.2012 - 23:35
использовать on, live или делегаты. Хотя об этотом уже писали выше.
_____________
kuzroman@list.ru