Events 在javascript中单击“我的事件侦听器”时不会发生任何事情

Events 在javascript中单击“我的事件侦听器”时不会发生任何事情,events,listener,Events,Listener,我有以下职能: createTreeItem: function (num, val) { const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var i = document.createElementNS(XUL_NS, "treeitem"); var r = document.createElementNS(XUL_

我有以下职能:

    createTreeItem: function (num, val)
    {
        const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

        var i = document.createElementNS(XUL_NS, "treeitem");
        var r = document.createElementNS(XUL_NS, "treerow");
        var c1 = document.createElementNS(XUL_NS, 'treecell');
        var c2 = document.createElementNS(XUL_NS, 'treecell');
        var c3 = document.createElementNS(XUL_NS, 'treecell');

        i.setAttribute("container", true);
        i.setAttribute("open", true);

        c1.setAttribute("label", num);
        c2.setAttribute("label", val);
        c3.setAttribute("value", false);

        r.appendChild(c1); 
        r.appendChild(c2);
        r.appendChild(c3);

        i.appendChild(r);
        i.addEventListener("click", test, false);

        return i;
    } 

    test: function ()
    {
        alert("zero");
    }

    func: function (liste)
    {
        try
        {
            root = document.getElementById("treeRoot");
            var current;

            for(o in liste)
            {
             current = createTreeItem(liste[o].id, liste[o].nom_scenario);
             root.appendChild(current);
            }       
        }
        catch(e)
        {
        alert(e);
        }
    }
我正在树中创建元素,我想在创建的每个元素上添加事件侦听器。问题是什么也没发生。
在代码中,Liste是json请求的响应。它包含我想在xul文件中创建的所有元素。

我对这种语法不是非常熟悉,但我敢打赌,测试函数不会因为它的定义方式而被“提升”。尝试将“test”函数移到“createTreeItem”函数上方,或仅按如下方式定义测试:

function test() {
   ...
}

这样,当它被评估时,它将被“提升”到顶部,以便当您尝试将其添加为click事件的操作时,它将被定义。不是100%确定这是正确的,但如果我不得不打赌…

这似乎合乎逻辑,但没有改变任何事情。