呃。谁能向我解释为什么模糊和焦点事件在附加的输入文本字段上不起作用?
正如您在此JSFIDDLE中所看到的。用html创建的输入字段似乎监听了模糊和聚焦事件。但是,当您使用附加按钮添加输入文本字段时,突然输入文本字段不会听取模糊/聚焦事件。
的HTML
<input class="input" value="value 1">
<input class="input" value="value 2">
<div id="appendinput">Append a input textfield</div>
<div id="inputcontainer"></div>
jQuery的
var counter = 0;
$("#appendinput").click(function () {
$('<input class="input" value="value 3" type="text" id="input' + (counter) + '"/>').appendTo('#inputcontainer');
counter++;
});
$('.input').on('focus', function () {
thisValue = $(this).val();
$(this).attr("value", "");
});
$('.input').on('blur', function () {
if ($(this).val() === "") {
$(this).val(thisValue);
}
});
您能向我解释为什么这不适用于附加的输入文本字段吗?先感谢您。
您需要使用on将事件委托给动态添加的元素的父对象。
$(document).on('focus', '.input', function () {
thisValue = $(this).val();
$(this).attr("value", "");
});
委派事件的优势在于,它们可以处理以后在以后添加到文档中的后代元素中的事件。通过选择保证在附加委托事件处理程序时会出现的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序reference的需要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句