用户可以选择创建最多100个列表项。我的目标是在每个项目下创建一个菜单,用于编辑该单个项目。以下是编辑按钮的代码:
$(document).ready(function(){
var nextItemId = 1;
$('#AddItem').click(function(){
//Create and add a paragraph
$('<p />').attr('id', 'itemParagraph' + nextItemId)
.text(nextItemId + ". ")
.appendTo('#listInput');
//Create and add an input box
$('<input />').attr({'type':'text', 'id':'item' + nextItemId})
.appendTo('#itemParagraph' + nextItemId);
//Create an edit button for input box
$('<input />').attr({'type':'button', 'value':'Edit', 'id':'editItem' + nextItemId})
.appendTo('#itemParagraph' + nextItemId);
//d number
nextItemId++;
});
如何创建适用于所有变量item1,item2等的函数... item100及其相应的编辑按钮editItem1,editItem2等.... editItem100?有没有办法在为它们创建菜单时引用这些变量并将其精确地压缩到函数中?按下编辑按钮时,菜单将向下滑动。
答案 0 :(得分:0)
保留对$('<input />')
返回的内容的引用,并将其传递给回调。例如:
var item = $('<input />');
item.attr({'type':'text', 'id':'item' + nextItemId})
.appendTo('#itemParagraph' + nextItemId);
... create menu ...
menuItem.click(function() { item.focus(); })
这是有效的,因为匿名函数保持指向创建它的上下文的指针,因此保持指向当前item
的“值”(=它指向的引用)。