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();
为什么单击链接时会提醒DAYBOOK对象中的所有属性?
答案 0 :(得分:5)
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);
})
);
答案 1 :(得分:0)
Try this
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>').click(function(){
alert(key);
}).append("<br />");
})(key);
}
};
cnstr_submenu();