先看看標準的錯誤方式。
for (...) {
var fKey = ...;
var friend = new lime.Sprite()...;
$(friend.getDeepestDomElement()).click(function(){
// 會得到很怪的 fKey
// 所有的 click 都會得到同一個 fKey
// 通常應該是迴圈中最後一個物件的 fKey
alert(fKey);
});
}
再來就是正確的方式。
for (...) {
var fKey = ...;
var friend = new lime.Sprite()...;
// friend 本身不是 Dom 物件,不能用來藏值
$(friend.getDeepestDomElement()).attr('fKey', fKey);
$(friend.getDeepestDomElement()).click(function(){
// 在迴圈的 callback 裡讀值,一定得透過 this
var fKey = $(this).attr('fKey');
alert(fKey);
});
}
---
沒有留言:
張貼留言