我有一個圖像旋轉木馬,我希望根據窗口寬度將src屬性值替換爲其他data-src屬性值。更改循環中的img src屬性值 - jquery
<div id="mainCarousel">
<img class="img-carousel" src="img/carousel-main-img2.jpg" data-src="img/carousel-main-datasrc-1.jpg" data-srctwo="img/carousel-main-datasrctwo-1.jpg">
<img class="img-carousel" src="img/carousel-main-img3.jpg" data-src="img/carousel-main-datasrc-2.jpg" data-srctwo="img/carousel-main-datasrctwo-2.jpg">
function carouselImages() {
// set window width in a variable
var winWidth = $(window).width();
// set img DOM element in a variable
var imgCarousel = $('#mainCarousel .img-carousel');
// declare empty variable for img 'data-src' attribute
var dataSrc = $();
// declare empty variable for img 'data-srcTwo' attribute
var dataSrcTwo = $();
//set loop which will iterate on each img DOM element
for(var i=0; i<imgCarousel.length; i++) {
// set first width range condition
if(winWidth > 400 && winWidth < 768) {
// if width matches condition, store the value of each DOM element's 'data-src' attribute in previously declared variable
dataSrc = imgCarousel[i].attr('data-src');
// replace DOM element's 'src' attribute's value with 'data-src' attribute's value
imgCarousel[i].attr('src', dataSrc);
}
// set second width range condition
else if (winWidth >= 768) {
// if width matches condition, store the value of each DOM element's 'data-src' attribute in previously declared variable
dataSrcTwo = imgCarousel[i].attr('data-srcTwo');
// replace DOM element's 'src' attribute's value with 'data-src' attribute's value
imgCarousel[i].attr('src', dataSrcTwo);
}
}
};
$(document).ready(function(){
carouselImages();
});
$(window).resize(function() {
carouselImages();
});
我想實現的是src
價值得到與data-src
值替換當窗口寬度爲401px和767px之間,並與data-srctwo
值時,窗口寬度是>= 768px
圖像。
我試圖在構建函數時儘可能合理。但它不起作用。在縮小屏幕和刷新時,以及直接調整瀏覽器窗口大小時,src屬性值都不會改變。另外,我收到以下錯誤消息
imgCarousel [I] .attr不是一個函數
有誰告訴我什麼是真正錯了我的功能背後的邏輯;爲什麼我得到錯誤信息,因爲我不認爲你需要在一個條件內有一個函數。
當$使用'for'循環時,'$(this)'不起作用。 – nnnnnn
即使這是我的疑問。我編輯了答案 – brk