我有一个循环遍历消息列表的for循环。我正在尝试为每个具有onclick函数的消息创建一个链接,该函数将一些消息属性传递给弹出窗口:
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消息弹出窗口始终会从列表中的最后一条消息传递属性。关于如何让它通过适当的属性的任何想法?
答案 0 :(得分:1)
尝试使用dojo.hitch()代替您的功能:
dojo.connect(lnkMessage, 'onclick', this,
dojo.hitch(this,"ShowLogPopup",message.LogTimeFormatted, message.Message)
);