jQuery 重新排列/交换 img src 会导致照片重新加载出现故障
jQuery rearrange/swap img src causes glitched reloading of photos
我不确定最好的方法是什么,但我必须在加载页面后更改页面上多个图像的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');
这是一个包含我用来重新排列的功能的小提琴。上面的一行在第 91 行。
https://jsfiddle.net/4o17Ldxu/
在小提琴中,单击"生成交换列表"并查看浏览器控制台,您将看到它告诉您应该在哪里交换哪些图像,那里的一切都很完美,但是当您再次单击按钮并单击"现在重新排列"时,它会导致所有故障。
有没有办法防止这种情况?或者有没有更好的方法来以这种方式交换/重新排列图像?
我认为问题在于您实际上并没有"交换"图像 - 您将第一个图像设置为等于第二个图像,而第二个图像保持不变。例如,您的代码日志:
Swap Photo 4 with Photo 2
但它实际在做的是:
$('img[src="image.png"]').attr('src', 'newimage.png');
此操作完成后,您的页面中将有两个与选择器img[src="newimage.png"]
匹配的<img>
标记。 在后续步骤中,如果您尝试使用 src="newimage.png"
选择所有图像,您最终将替换多个图像的src
。
相关文章:
- 数据表 AJAX 筛选器重新加载数据
- 如何在新加载的页面上执行(下拉)操作
- 根据上一个选项卡的选择器重新加载选项卡
- 获得“中止,因为不接受 0”并使用反应热加载器重新加载整页
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 如何为新加载的元素提供JQuery UI工具提示
- 如何在新加载的页面上使用相同的JavaScript代码(通过重定向)
- 使用PHP或Javascript检测页面刷新或新加载
- JavaScript+JSON问题:无法加载照片/undefined.jpg
- 砌体重新加载&reloadItems不起作用
- 如何使javascript计时器重新加载
- 如何获取新加载的图像's width / naturalWidth
- 列出并调用firefox扩展中新加载的选项卡中的js函数
- 旋转器重新加载图像似乎在覆盖层后面
- AJAX调用后,新加载的CSS选择器对jQuery.ech()不可用
- jQuery砌体-砌体重新加载后调用方法
- 如何向所有查看器重新加载页面
- 如何打开子浏览器窗口,然后在新加载的子浏览器页面上执行脚本以单击其中的链接
- 如何选择新加载 html 的元素
- 在 jQuery 的 ajax.load() 之后,无法将元素附加到新加载的内容中