Ответ 1
Проблема была решена с помощью плагина jquery-появляются
Возможный дубликат:
Событие jQuery для запуска действия, когда div становится видимым
Как я могу запустить некоторый мой код, когда элемент, который был загружен ajax, стал видимым ( "display" переключается с "none" на "block" )? Ну, мне нужно какое-то событие вроде
$('#element').live('show', function(){
// CODE
});
Или событие, которое следит за удалением/добавлением некоторого класса в элемент
Проблема была решена с помощью плагина jquery-появляются
Там нет встроенного jQuery, который позволяет вам это достичь. Вы можете посмотреть плагин livequery. Например:
$('#element').livequery(function() {
// CODE
});
Когда элемент с id = "element" добавлен в DOM, должен быть выполнен обратный вызов.
Выполнить проверку каждые 1 секунду. Если #element
существует и отображается, тогда очистите (остановите) интервал и выполните свой код.
var checkVisible = setInterval(function(){
// if element doesn't exist or isn't visible then end
if(!$('#element').length || !$('#element').is(':visible'))
return;
// if element does exist and is visible then stop the interval and run code
clearInterval(checkVisible);
// place your code here to run when the element becomes visible
},1000);
Неизбежно у вас есть обратный вызов события jQuery, который показывает элемент; в этих обратных вызовах событий вы должны поместить ваш код "когда элемент виден".
Вы пробовали jQuery.load()
?
http://api.jquery.com/load-event/
Он должен работать как минимум для изображений, тегов script и т.д.... но не для элементов, у которых нет URL-адреса.
В противном случае livequery должно помочь: