在 jquery 中我附加了一个<li>
元素到无序列表。
我如何专注于新创建的<li>
?
如果我执行以下操作:
$("ul").append('<li><input type="text" value="Hi!"></li>');
$("li:last").focus(); //doesn't work because new <li> isn't in dom yet
如上所述,焦点不起作用。
我知道 jquery 1.4.2 有一个live()
事件处理程序,它允许您将事件处理程序加载到动态添加的元素,但我不确定我做错了什么:
$(document).ready(function () {
$('li').live('load', function () {
alert("hi!");
$("li:last").focus();
});
});
您只能将焦点设置给可以保持焦点的元素。默认情况下,列表项不能。这就是你的第一个示例失败的原因,不是因为它不在 DOM 中(它is在 DOM 中,就是这样append
does)
一般来说,您应该使用旨在保持焦点的元素(即将焦点设置在输入而不是列表项上)。您也可以(但这不太向后兼容且不太逻辑)使用 HTML5tabindex(可能将其设置为0
).
onload
将不起作用,因为列表项不加载外部内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)