Javascript 将长方体移动到顶部(z索引)

Javascript 将长方体移动到顶部(z索引),javascript,jquery,events,javascript-events,z-index,Javascript,Jquery,Events,Javascript Events,Z Index,我有一个类似于虚拟桌面的应用程序,它有一个带有可点击图标的工具栏。单击图标时,会打开一个类似窗口的框(动态创建),其中包含关于单击哪个图标的不同内容 在创建窗口时调用名为“moveOnTop()”(见下文)的函数,单击事件将绑定到该窗口。如果打开多个窗口,用户单击另一个窗口后面排序的窗口,则单击的窗口将移至顶部 现在来谈谈问题 单击其中一个图标时,将打开一个显示一组缩略图的框,单击其中一个缩略图时,将打开一个包含该特定图像的新窗口。带有图像的窗口应移到顶部,但这不会发生,因为在创建带有图像的窗口

我有一个类似于虚拟桌面的应用程序,它有一个带有可点击图标的工具栏。单击图标时,会打开一个类似窗口的框(动态创建),其中包含关于单击哪个图标的不同内容

在创建窗口时调用名为“moveOnTop()”(见下文)的函数,单击事件将绑定到该窗口。如果打开多个窗口,用户单击另一个窗口后面排序的窗口,则单击的窗口将移至顶部

现在来谈谈问题

单击其中一个图标时,将打开一个显示一组缩略图的框,单击其中一个缩略图时,将打开一个包含该特定图像的新窗口。带有图像的窗口应移到顶部,但这不会发生,因为在创建带有图像的窗口后,单击的缩略图框上的单击事件被触发,从而导致该窗口移到顶部

换句话说,我不知道如何解释这个问题,我希望你能理解我的意思。我真的很感谢你们的帮助,因为我已经为这个问题挣扎了好几个小时,谢谢

Windows.prototype.buildWindow = function(){

    // a function that created the boxes

    Windows.prototype.moveOnTop();
}

Windows.openedImg = function(){

    // a function that creates the box with the clicked image

    var thisWindow = $(this);
Windows.prototype.getZindex(thisWindow);
}

Windows.prototype.moveOnTop = function(){

var boxes = $('.window');

    boxes.click(function() {

        var thisWindow = $(this);
        Windows.prototype.getZindex(thisWindow);
    });
}

Windows.prototype.getZindex = function(thisWindow){

var boxes = $('.window');
var maxZindex = 0;

    boxes.each(function() {

        var zIndex = parseInt($(this).css('z-index'), 10);
        maxZindex = Math.max(maxZindex, zIndex);
    });

thisWindow.css("z-index", maxZindex + 1);
}
Html:


为什么不添加几个覆盖Z索引的类名,而不是混乱Z索引呢。这样,如果你删除类名,它会恢复到原来的z索引。我得说,我不是在挖掘你创建这个窗口对象的方式:
Windows.prototype.buildWindow
Windows.openedImg
。您可以使用
Windows.prototype.func()调用东西我一点也不喜欢,先生,一点也不喜欢。谢谢@Chad的建设性批评,这是非常有益的!老实说,你应该做两件事:你应该使用一个更干净的方法来构建这个对象,你应该使用一些类来识别活动窗口,而不仅仅是每次增加z索引,我没有看到你用来调用创建图像窗口的代码,我也不明白你为什么选择说
Windows.openedImg
,而不是像对待其他任何事情一样说
Windows.prototype.openedImg
。我看到的几乎所有代码都应该在IMO中重写。是的,我知道你说的更干净的方法是对的,这是我稍后将尝试做的事情。关于Windows.openedImg(实际上应该是“Windows.bgChanger.openedImg”)。这是一个与Windows不直接相关的函数,但与从对象“Windows”继承的特定应用程序“bgChanger”相关.然而,我完全理解这是不可能从代码中知道的。但是,我感谢您对我的代码的想法!
<img onclick="openWindow(true)" ... />
function openWindow(doNotGoToTop) {
    ... //open window
    if (!doNotGoToTop) {
        ... //go to top
    }
}