2011-07-20 64 views
0
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(); 

http://jsfiddle.net/9AqVK/A HREF點擊()和封閉

爲什麼在日記帳對象的所有屬性是當你點擊一個鏈接警告?

回答

5

elm.append(...).click實際上會將click綁定到elmdiv)。所以當點擊一個鏈接時,鏈接並沒有太大的作用 - 而是執行了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); 
    }) 
); 
+0

! :D .. – clarkk

+0

打我吧,+1 –

+0

@布拉德克里斯蒂:重複.. +1 – Emil

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(); 
當然
+0

也[此版本](http://jsfiddle.net/9AqVK/2/)。 –