gpt4 book ai didi

javascript - .focus() 不适用于克隆对象?

转载 作者:行者123 更新时间:2023-11-28 13:31:41 25 4
gpt4 key购买 nike

祝大家一切顺利!

所以我有一个包含连续输入文本列表的表单。表单可以包含尽可能多的行,因为有一个“添加行”按钮允许用户动态添加

我使用clone()来实现这个“添加行”函数,并且它工作得很好

接下来,只有选中相应的复选框才能编辑一行中的每个输入

我已将代码放入 fiddle :FIDDLE DEMO

现在,当复选框被选中时,我们直接将焦点放在第一个输入上(我定义了输入类='first'),一旦这个输入被填充,它就直接将焦点放在下一个输入上。它工作正常,除了:如果我添加新行,焦点功能将不再工作。

我的焦点函数是:

 $("input").keyup(function (event) {
if ($(this).val() != "") {
$(this).next('input').focus();
if ($(this).next('input[type="text"]').val() == "X") {
$(this).closest('.me').find('input').focus();

}
}
});

应该是这样吗?或者我需要在脚本中添加什么内容吗?

谢谢!!

最佳答案

使用clone(true)而不是clone()

代码

 var new_line = $('#content div.2dtme:last').clone(true).append();

DEMO

您需要使用Event Delegation 。您必须使用.on()使用委托(delegate)事件方法。

事件处理程序仅绑定(bind)到当前选定的元素;当您的代码进行事件绑定(bind)调用时,它们必须存在于页面上。

$(document).on('event','selector',callback_function)

示例

$('form').on('keyup', 'input', function (event) {
//Your code
});

而不是

$("input").keyup(function (event) {
//Your code
});

DEMO

关于javascript - .focus() 不适用于克隆对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com