如果我創建像這樣在循環一堆對象:如何將值傳遞給jQuery單擊回調?
for(var i = 0; i < 5; i++)
{
var data = { val: i * 2 };
var obj = $('<li>Item</li>');
$("ul").append(obj);
obj.click(function()
{
alert(data.val);
// Output is 8 for all items.
});
}
我只能夠在.click()
處理程序中訪問的最後創建data
對象。
如何在我的處理程序中引用相關的data
對象 - 與jQuery對象被單擊同時創建的對象?
我已經能夠通過在jQuery對象上通過.attr()
分配隨機屬性來保存數據,而不是單獨的對象,但我想遠離這種方法。
我也試過,但沒有運氣:
var data = { val: i * 2 };
var obj = $('<li>Item</li>');
obj.data = data;
obj.click(function()
{
// 'data' is undefined here i.e. not associated with $(this).
alert($(this).data.val);
});
您需要使用封閉。 HTTP://計算器。COM /問題/ 7958613/jQuery的循環中,點擊關閉 – specialscope