我试着:
- 创建一个带有输入字段的新列表项
将焦点放在那个新领域
$("#newList").click(function () { $('li.divider').before('<li class="newListName"><input id="newListNameInput" /></li>',function() { $('#newListNameInput').focus(); }); });
新的列表项被创建,但没有焦点。非常感谢您的帮助!
我试着:
将焦点放在那个新领域
$("#newList").click(function () {
$('li.divider').before('<li class="newListName"><input id="newListNameInput" /></li>',function() {
$('#newListNameInput').focus();
});
});
新的列表项被创建,但没有焦点。非常感谢您的帮助!
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();
});
没有处理程序作为 的第二个参数before
,因此只需使用:
$("#newList").click(function() {
$('li.divider').before('<li class="newListName"><input id="newListNameInput" /></li>');
$('#newListNameInput').focus();
});
input
但是,如果您添加许多新元素,请注意 ID 的重复。也许使用类更好。
演示:http: //jsfiddle.net/CANWE/