0

我试着:

  • 创建一个带有输入字段的新列表项
  • 将焦点放在那个新领域

    $("#newList").click(function () {
        $('li.divider').before('<li class="newListName"><input id="newListNameInput" /></li>',function() {
            $('#newListNameInput').focus();
        });
    });
    

新的列表项被创建,但没有焦点。非常感谢您的帮助!

4

3 回答 3

1

before()是同步的,不接受回调参数。你只需要写:

$("#newList").click(function() {
    $('li.divider').before('<li class="newListName"><input id="newListNameInput" /></li>');
    $('#newListNameInput').focus();
});

或者,如果您想利用链接:

$("#newList").click(function() {
    $('<li class="newListName"><input id="newListNameInput" /></li>')
        .insertBefore("li.divider").find("input").focus();
});
于 2012-08-21T09:55:24.297 回答
1

试试这个http://jsfiddle.net/CWqxk/

于 2012-08-21T09:59:43.380 回答
0

没有处理程序作为 的第二个参数before,因此只需使用:

$("#newList").click(function() {
    $('li.divider').before('<li class="newListName"><input id="newListNameInput" /></li>');
    $('#newListNameInput').focus();
});

input但是,如果您添加许多新元素,请注意 ID 的重复。也许使用类更好。

演示:http: //jsfiddle.net/CANWE/

于 2012-08-21T09:54:00.087 回答