0

用户可以选择创建最多 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 的函数?有没有办法在为它们创建菜单时引用这些变量并将它们很好地压缩成一个函数?按下编辑按钮时,菜单将向下滑动。

4

1 回答 1

0

保留对您返回的内容的引用$('<input />')并将其传递给回调。例子:

var item = $('<input />');
item.attr({'type':'text', 'id':'item' + nextItemId})
    .appendTo('#itemParagraph' + nextItemId);

... create menu ...
menuItem.click(function() { item.focus(); })

这是有效的,因为匿名函数保留了一个指向创建它的上下文的指针,因此指向当时的“值” item(=它指向的引用)。

于 2012-05-16T14:48:19.040 回答