Ver*_*ris 2 jquery textarea blur
我有几个动态加载的文本区域,当它们变得模糊时似乎没有响应.我使用.post加载它们(它们在php脚本中生成并作为数据返回显示).我做了这个jsfiddle,它自己工作,但不在我的页面上.问题可能是textareas是动态加载的吗?我在其他地方读到我应该使用.on()来动态加载元素(我确实使用过它),但它仍无法在我的页面上运行.这是jsfiddle中的jQuery代码:
$('.crit_desc').on('blur', function () {
var value = $(this).val();
alert(value);
});
Run Code Online (Sandbox Code Playgroud)
将您的代码更改为:
$(document).on('blur', '.crit_desc', function () {
var value = $(this).val();
alert(value);
});
Run Code Online (Sandbox Code Playgroud)
由于您的元素是动态加载的,因此需要将它们绑定到页面加载时存在于DOM中的元素.理想情况下,您希望元素更靠近动态加载的元素,而不是document帮助提高性能.
根据.on()上的文档:
事件处理程序仅绑定到当前选定的元素; 它们必须存在于您的代码调用.on()时的页面上.要确保元素存在且可以选择,请在文档就绪处理程序内对页面上HTML标记中的元素执行事件绑定.如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序.