Определить загрузку изображения в jQuery 1.8+ - альтернатива load() с момента устаревания
объяснение
По причинам, которые я ценю, начиная с jQuery 1.8, load
Событие устарело, однако все еще можно было определить, было ли загружено изображение (даже если оно было в кеше), просто используя определенные обходные пути. Таким образом, устаревание события на самом деле весьма раздражает, поскольку оно представляет собой отправную точку, по крайней мере, для определения, когда изображение закончило загрузку на страницу.
Тем не менее, он устарел, и поэтому я задаю этот вопрос с надеждой, что найду ответ, таким образом, помогу мне и, возможно, другим, которые могут вскоре столкнуться с той же проблемой.
Пример (до jQuery 1.8)
Без использования плагина (поскольку это должно быть в состоянии сделать очень мало кода, поэтому плагин не нужен), я хотел бы вызвать функцию, когда каждое изображение на моей странице загружено.
Примерно так (это не сработает из-за устаревания):
$('#mn_content .column').on('load','img',function(){
console.log('loaded');
})
Мой вопрос
Кто-нибудь знает, как этого добиться сейчас, когда load
событие не существует?
Обратите внимание: если единственный способ добиться этого (сейчас), это использовать Javascript new Image
объекты, тогда, пожалуйста, не тратьте свое время на помощь мне, так как другие нуждаются в вашей помощи больше, чем я. Я умею писать этот код, он кажется немного затянутым для чего-то такого базового.
Я просто задал этот вопрос, чтобы убедиться, что нет способа достичь этого без использования Javascript image
объекты
Я, конечно, буду очень благодарен за любую помощь, я просто не хочу, чтобы вы тратили на меня много времени, когда есть другие, которые больше нуждаются в вашей помощи. :-)
1 ответ
Событие загрузки все еще существует, вы просто не можете привязать его, используя .load
больше. Ваш пример делегирования события должен продолжать работать в 1.9 и 2.0 (если браузер, в котором вы тестируете, поддерживает всплывающее окно события load)
Лично я все еще использовал бы новый метод Image, потому что я не верю, что все браузеры всегда будут правильно отображать событие загрузки.
Изменить: Извините, если я не был ясен, я хотел сказать, что событие загрузки все еще там, вы просто должны правильно связать его. Поскольку событие загрузки не всплывает во всех браузерах (если в любом браузере?), Вы должны привязать событие непосредственно к изображению. Я бы предложил использовать метод, который вы просили нас, чтобы не дать вам пример.