2017-02-09 9 views
-1

моего изображения имеет data-web-src, data-tablet-src и data-mobil-src если мой IMG тег имеет .lazy_res класс вместо .lazyload затем установить значение data-web-src к src на сети, но если экран (или устройство) является таблеткой, чем установлено data-tablet-src значения, чтобы src я хочу, чтобы это сделать для всех изображений на моей веб-странице, но я не могу найти решение здесь вы мой кодКак получить и установить переменную данных с помощью jquery?

$(document).ready(function() { 
 

 
    function noLazyImages(e) { 
 
    var getWebSrc = $(e).attr("data-web-src"); 
 
    var getTabletSrc = $(e).attr("data-tablet-src"); 
 
    var getMobilSrc = $(e).attr("data-mobil-src"); 
 
    if ($(".box img").hasClass("lazy_res")) { 
 

 
     if ($(window).width() > 960) { 
 
     $(e).attr("src", getWebSrc); 
 
     } else if ($(window).width() < 768) { 
 
     $(e).attr("src", getTabletSrc); 
 
     }else if ($(window).width() < 480) { 
 
     $(e).attr("src", getMobilSrc); 
 
     } 
 

 
    } else { 
 
     // do nothing.. 
 
    } 
 

 
    } 
 

 
    noLazyImages(".box img"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="box"> 
 

 
<img class="lazy_res" data-web-src="http://image.prntscr.com/image/bdf1d94b64104ef2acd2ceee19882cd1.jpg" data-mobil-src="http://image.prntscr.com/image/caa51ab4900448589201207e57b2630f.jpg" data-tablet-src="http://image.prntscr.com/image/4b2862a292b543139daa7805a58c17fd.jpg"/> 
 
    
 
    
 
    
 
</div>

+2

Проверить https://api.jquery.com/data/ – Huangism

+1

Это может помочь Http: //stackoverflow.com/a/5309947/3076934 – amansoni211

+1

eh, нет ничего плохого в использовании .attr для доступа к атрибутам data- *. Это еще более результативно, чем использование jQuery .data для них. –

ответ

2

вам нужно перебираем все из них в d получить и установить конкретные значения экземпляра

Можно сделать это с помощью attr(function)

function noLazyImages(e) { 
    $(e + '.lazy_res').attr('src', function(_, oldSrc) { 
    var elData = $(this).data(), 
     winWidth = $(window).width(); 
    if (winWidth > 960) { 
     return elData['webSrc'] 
    } else if (winWidth < 768 && winWidth >=480) { 
     return elData['tabletSrc'] 
    } else if (winWidth < 480) { 
     return elData['mobilSrc'] 
    } 
    }) 
} 

DEMO

+0

спасибо, но ничего нет, как я могу подать заявку на мой код? –

+0

как подать заявку? Выключите функцию. – charlietfl

+0

Я понимаю, но я думаю, что не работает. Я пробовал только сейчас :) –