javascript - 使用 jquery 更改部分 src 名称,在调整窗口大小时不断重复

标签 javascript jquery html css

我编写了代码来查找特定 div 内所有图像的 src,并在窗口小于 900 宽时更改 src 名称。它在页面刷新时工作正常,但是当我调整窗口大小时它不断运行代码并且我得到这个错误

GET file://macintosh%20hd/Users/jessicamele/Desktop/tom%20mendicino/images/boys3_small_small_small_small.jpg net::ERR_FILE_NOT_FOUND

它只是一遍又一遍地添加“_small”。这是我的代码:

<div class="threePicsBoys group">
   <img src="images/boys3.jpg" alt="street signs" class="boysPics1">
   <img src="images/boys2.jpg" alt="city house" class="boysPics2">
   <img src="images/boys1.jpg" alt="2 boys" class="boysPics1">
   <img src="images/boys4.jpg" alt="philly signs" class="boysPics2">
   <img src="images/boys5.jpg" alt="religious statue" class="boysPics1">
</div>

$(function() {
    if (windowWidth <= 900) {
        var img = $(".threePicsBoys.group").find("img").map(function() { 
            var src = $(this).attr("src");
            var newName = src.replace(".jpg","_small.jpg"); 
            $(this).attr("src",newName);
        });
    }
});
}

我真的需要一些帮助。

最佳答案

此脚本将检查窗口是否太细以至于必须更改 src,但也会在宽度超过 900 时恢复更改。 我稍微改变了机制以使其工作。例如,windowWidth 不是一个已声明的变量,其余的似乎也没有做那么多。

var thinWindow = false;
$(window).on('load resize', function(){
    if($(window).width() <= 900){
        if(!thinWindow){
            $('.threePicsBoys.group img').each(function(){
                var src = $(this).attr("src");
                var newSrc = src.replace(".jpg","_small.jpg");
                $(this).attr("src", newSrc);
            })
            thinWindow = true
        }
    }else{
        if(thinWindow){
            $('.threePicsBoys.group img').each(function(){
                var src = $(this).attr("src");
                var newSrc = src.replace("_small.jpg",".jpg");
                $(this).attr("src", newSrc);
            })
            thinWindow = false
        }
    }
})

希望对你有帮助

关于javascript - 使用 jquery 更改部分 src 名称,在调整窗口大小时不断重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33193194/

相关文章:

javascript - JQuery悬停事件处理程序运行太多次

javascript - Crossfilter 行图表前 10 名

c# - 单击 asp 按钮获取下拉列表的值

jquery - 数据表按降序排序

javascript - jqueryUI 自动完成示例如何摆脱不使用 $(document).ready 的情况

html - 网格中的元素不会根据动画调整大小

html - 鼠标悬停时淡入淡出并显示文本 img

javascript - 什么时候通过 .toString() 将数字转换为指数表示法?

javascript - 查找元素是否包含在 jquery 选择器中

html - 内联 block 和行高在 Chrome、Safari 和 Firefox 上呈现不同