Ext.js 点击图片跳转至空白页展示图片问题解决
问题出在循环中的回调函数中,由于回调函数是异步执行的,所以在点击事件触发时,循环已经结束,item变量的值已经是最后一个图片的地址。
要解决这个问题,可以使用闭包来保存每个item的值,确保每个点击事件都能正确获取到对应的图片地址。可以修改代码如下:
listeners: {
afterrender: function (imagePanels) {
Ext.each(images, function (item) {
imagePanels.addImage(item);
(function (image) {
imagePanels.getEl().dom.addEventListener('click', function (data) {
// 在这里执行跳转到空白页展示图片的逻辑
// 打开新的空白页面
var newWindow = window.open('', '_blank');
newWindow.document.write("<img style='height: 100%' src='" + image + "'/>");
});
})(item);
});
}
}
通过使用闭包,可以确保每次循环都会创建一个新的作用域,保存当前item的值,从而避免了异步执行导致的问题。
原文地址: https://www.cveoy.top/t/topic/7Ns 著作权归作者所有。请勿转载和采集!