2010-07-27 68 views
0

我有一个循环遍历消息列表。我试图创建一个链接,即有传一些消息属性,弹出一个onclick功能每条消息:在for循环中动态创建onclick事件 - 所有onclick事件都使用for循环列表中的最后一个元素

for (var k = 0; k < messages.length; k++) { 
       var message = messages[k]; 
       var lnkMessage = dojo.create("a", { innerHTML: FormatLogMessage(message.Message), className: "pointer", title: "View Message Info" }, divMessageBody); 
       //lnkMessage.href = "javascript:ShowLogPopup('" + message.LogTimeFormatted + "', '" + message.Message + "')"; 
       dojo.connect(lnkMessage, 'onclick', this, 
        function() { this.ShowLogPopup(message.LogTimeFormatted, message.Message); } 
       ); 
      } 

的问题是,使用这种方法与dojo.connect中,ShowLogPopup弹出式消息总是从列表中的最后一条消息传递属性。关于如何让它通过适当的属性的任何想法?

回答

1

尝试使用dojo.hitch(),而不是你的函数:

dojo.connect(lnkMessage, 'onclick', this, 
    dojo.hitch(this,"ShowLogPopup",message.LogTimeFormatted, message.Message) 
      );