var DAYBOOK = {
22 : 'hmm',
9 : 'waaaah'
};
function cnstr_submenu(){
var elm = $('#test');
for(var key in DAYBOOK){
(function(key){
elm.append('<a href="#">'+DAYBOOK[key]+'</a><br>').click(function(){
alert(key);
});
})(key);
}
};
cnstr_submenu();
Run Code Online (Sandbox Code Playgroud)
为什么单击链接时会提醒DAYBOOK对象中的所有属性?
elm.append(...).click实际上将绑定click到elm(div).因此,当单击链接时,链接不会做太多 - 而是执行的单击处理程序div,其具有click两次的函数绑定.
如果您希望每个链接都提醒一个值,请将该函数绑定到链接:
elm.append( // append the following element
// create a link with a click handler bound
$('<a href="#">'+DAYBOOK[key]+'</a><br>').click(function(){
alert(key);
})
);
Run Code Online (Sandbox Code Playgroud)