2013-04-04 166 views
0

我想在dojo移动应用程序中点击ListItem时调用一个函数。dojox.mobile.ListItem OnClick不起作用

这是编程创建ListItems

showResults : function(results) { 

    results.forEach(function(result) { 

     var li = new dojox.mobile.ListItem({ 
      class : "linklist", 
      href : "#", 
      label : result.address, 
      moveTo : "#", 
      clickable : true, 
      onClick : function() { 
       console.log("click"); 
      } 
     }, domConstruct.create("li", null, this.searchList)); 

     // dojo.connect(li, "click", lang.hitch(this, this.addResult, result)) 

    }, this); 

} 

我曾尝试提供的功能与在构造函数中onClick财产,以及在创建后使用dojo.connect功能。两种方式都不行。我也尝试了clickonClickonclick的不同变化。

我看到过有关此问题的其他任何文章都建议使用上面评论的dojo.connect方法,但这仍然不适用于我。

有什么建议吗?

+0

做一个pc浏览器显示相同的行为? – 2013-04-05 06:57:20

+0

哪个版本的dojo? – 2013-04-05 08:21:36

+0

@LucianDepold - 我目前正在使用我的电脑在Chrome上进行测试。 – Brian 2013-04-05 14:13:18

回答

2

这是因为您的小部件的startup()方法永远不会被调用。你必须明确地调用li.startup(),或者,而不是创建一个引用节点并传递给ListItem构造函数,你可以使用this.searchList.addChild(li)(这也会导致startup()被正确调用) 。

+0

我尝试了启动方法,但它仍然无法工作。但是,当我将它改为使用'this.searchList.addChild(li)'时,它确实有效。谢谢你的帮助。那一个让我难住。 – Brian 2013-04-05 14:20:48