我正在尝试动态生成嵌入html代码,因为用户在相邻文本框中键入了一些信息。我遇到的问题是$ add_link_box句柄似乎在“on”事件处理程序内部破坏,并且不会更改我的$ add_link_box文本字段的值。
$add_link_box = $("<input>", {type: "text", class: "code_div_text_field"});
$link_text_box = $("<input>", {type: "text", class: "link_text_box"});
$code_div.append($link_text_box);
$code_div.append($add_link_box);
$link_text_box.on('change keyup paste',function(event) {
$add_link_box.val($(this).val());
});
如果我改为使用:
$('.code_div_text_field').val($(this).val());
然后文本框正确填充。显而易见的答案似乎是元素句柄不会持久存在于异步回调中,但是我一直在使用同样的语法在我的程序代码中使用'div'元素而没有任何问题。 jQuery如何处理“输入”与“div”元素有什么区别可以解释这种不一致性?
(我最初也有$ link_text_box.val()而不是$(this).val()但由于我收集的内容而改变了它是同样的问题。)
答案 0 :(得分:-1)
我认为问题可能是两个输入的顺序,如您提供的代码:
$code_div.append($link_text_box);
$code_div.append($add_link_box);
第一个是link_text_box元素实际上有绑定事件。