0

私はしようとしています:

  • 入力フィールドを持つ新しいリスト項目を作成する
  • その新しいフィールドにフォーカスを設定します

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

新しいリスト項目が作成されますが、フォーカスがありません。助けていただければ幸いです。

4

3 に答える 3

1

before() is synchronous and does not take a callback argument. You only have to write:

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

Or maybe, if you want to take advantage of chaining:

$("#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

の 2 番目のパラメーターとしてハンドラーがないため、次を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 に答える