问题出在循环中的回调函数中,由于回调函数是异步执行的,所以在点击事件触发时,循环已经结束,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的值,从而避免了异步执行导致的问题。

Ext.js 点击图片跳转至空白页展示图片问题解决

原文地址: https://www.cveoy.top/t/topic/7Ns 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录