javascript - jQuery 重新排列/交换 img src 导致照片重新加载出现故障

标签 javascript jquery html css image

我不确定最好的方法是什么,但我必须在页面上的多个图像加载后更改 src 属性。可以说,我需要重新排列它们。

在它们的原始格式中,它们显示如下:

1    5    9
2    6    10
3    7    11
4    8    12

我写了一个 jQuery 函数,可以像这样重新排列它们:

1    2    3
4    5    6
7    8    9
10   11   12

重新排列在理论上工作正常,但当实际更改图像的 src 时,它会不止一次地重新加载同一图像和其他奇怪的行为。

这就是我如何更改 src

$('img[src="image.png"]').attr('src', 'newimage.png');

这是一个包含我用来重新排列的函数的 fiddle 。上面一行在第 91 行。

https://jsfiddle.net/4o17Ldxu/

在 fiddle 中,单击“生成交换列表”并查看浏览器控制台,您会看到它告诉您哪些图像应该交换到哪里,那里的一切都很完美,但是当您再次单击按钮并单击“现在重新排列”,它会导致所有故障。

有什么办法可以防止这种情况发生吗?或者是否有更好的方法来以这种方式交换/重新排列图像?

最佳答案

我认为问题在于您实际上并没有“交换”图像 - 您将第一张图像设置为等于第二张图像,而第二张图像保持不变。例如,您的代码日志:

Swap Photo 4 with Photo 2

但它实际做的是:

$('img[src="image.png"]').attr('src', 'newimage.png');

此操作完成后,您将有两个 <img>页面中与选择器 img[src="newimage.png"] 匹配的标签.在后续步骤中,如果您尝试使用 src="newimage.png" 选择所有图像,您最终将替换 src多张图片。

关于javascript - jQuery 重新排列/交换 img src 导致照片重新加载出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787542/

相关文章:

javascript - 如何制作一个在用户页面(他是管理员)上安装页面选项卡的 Facebook 应用程序?

javascript - 如何用 jQuery 替换变量数组中的值

javascript - 复杂的 Javascript 对象到 JSON 对象

javascript - 将动态 JSON 数组转换为 HTML

javascript - 如何在不点击选项卡的情况下切换选项卡

html - 在鼠标悬停时更改菜单颜色

javascript - fadetoggle 2 倍如何(初学者)

javascript - 存储购物车详细信息的最佳方式本地存储或服务器端 cookie

javascript - 当输入字段的长度达到限制时运行函数

javascript - 使用属性等于选择器时转义元素名称中的方括号