像调用它的事件一样调用函数

时间:2013-12-31 10:34:45

标签: javascript this

我有以下功能:

bringToFront : function () {
    "use strict";
    Desktop.appZ += 1;
    this.style.zIndex = Desktop.appZ;
}

单击某些元素时会调用此函数:

appWindow.addEventListener("mousedown", Desktop.bringToFront, false);
appWindowParent.appendChild(appWindow);

但是,如果我向DOM添加一些元素并单击它们,从而增加它们的z-index,然后添加另一个元素,这个元素将出现在第一个元素的后面,而不是在它们的前面。因此,当我将“appWindow”添加到“appWindowParent”时,我还想在“appWindow”上调用“bringToFront”。我需要在没有链接“bringToFront”功能的情况下这样做(即不添加参数)。

谢谢!

顺便说一下,我知道我可以在创建元素时手动增加z-index,但我打算在“bringToFront”函数中做更多的事情,我不想复制那些代码。

2 个答案:

答案 0 :(得分:1)

您可以使用apply()在函数

中设置this的值
appWindowParent.appendChild(appWindow);
Desktop.bringToFront.apply(appWindow);

答案 1 :(得分:-1)

如果在dom

中插入新元素,请通过以下代码进行检测
$(document).on('DOMNodeInserted', function(e) {
    if (e.target.id == 'someID') {

    }
});