2013-04-20 41 views
-1

上点击我的事件侦听器发生了,我有以下功能:没有在JavaScript中

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文件中创建的所有元素。

回答

0

我对这个语法并不是非常熟悉,但我敢打赌,测试函数并没有被“悬挂”,因为它是如何被定义的。尝试移动上面的“createTreeItem”功能“测试”功能,或只是定义,像这样的测试:

function test() { 
    ... 
} 

当它被评价将被“悬挂”到顶部,这样,当您尝试添加这种方式作为点击事件的动作,它将被定义。不是100%确定这是正确的,但如果我必须下注...

+0

它似乎是逻辑,但它没有改变任何东西。 – user2302725 2013-04-20 18:08:20