Я не уверен, нужна ли мне здесь функция each()
или я могу как-то сделать это с помощью this
. Я пытаюсь переключить атрибут src на основе оператора if
. Это работает за исключением того, что он переключает их обоих на hifi1.jpg
. Как мне сделать так, чтобы каждое img
значение data-websrc
применялось к себе?
HTML:
<img class="airsrc" src="lofi1.jpg" data-websrc="hifi1.jpg" alt="example1">
<img class="airsrc" src="lofi2.jpg" data-websrc="hifi2.jpg" alt="example2">
JS:
jQuery(document).ready(function($) {
var airsrc = $('.airsrc');
airsrc.each(function() {
if ( Modernizr.mq('(min-width:480px)') ) {
var src = $(this).data('websrc');
airsrc.attr('src', src);
}
});
});
Обновление: решение:
jQuery(document).ready(function($) {
if ( Modernizr.mq('(min-width:480px)') ) {
$('.airsrc').each(function() {
var $this = $(this);
var src = $this.data('websrc');
if ( src != '' ) {
$this.attr('src', src);
}
});
}
});
Это работает в браузерах, которые поддерживают пользовательские атрибуты данных, которые, как я обнаружил в моем тестировании, означают FF / Chrome / Opera / Safari. Может быть, IE9. Я думаю, что getAttribute может быть использован для (более старого) IE.