Textarea没有用jQuery来回应模糊

时间:2013-02-24 18:02:47

标签: jquery textarea blur

我有几个动态加载的文本区域,当它们变得模糊时似乎没有响应。我使用.post加载它们(它们在php脚本中生成并作为数据返回显示)。我做了 this jsfiddle ,它本身就可以使用,但不在我的页面上。问题可能是textareas是动态加载的吗?我在其他地方读到我应该使用.on()来动态加载元素(我确实使用过它),但它仍无法在我的页面上运行。这是jsfiddle中的jQuery代码:

$('.crit_desc').on('blur', function () {

    var value = $(this).val();
    alert(value);

});

2 个答案:

答案 0 :(得分:5)

将您的代码更改为:

$(document).on('blur', '.crit_desc', function () {
    var value = $(this).val();
    alert(value);
});

由于您的元素是动态加载的,因此需要将它们绑定到页面加载时存在于DOM中的元素。理想情况下,您希望元素更靠近动态加载的元素而不是document来帮助提高性能。

每个docs on .on():

  

事件处理程序仅绑定到当前选定的元素;他们   在您的代码调用.on()时页面上必须存在。   要确保元素存在且可以选择,请执行事件   绑定在文档就绪处理程序中的元素   页面上的HTML标记。如果将新HTML注入页面,   选择元素并在新HTML之后附加事件处理程序   放入页面。

答案 1 :(得分:0)

如果动态加载,请使用livequery http://docs.jquery.com/Plugins/livequery

$('.crit_desc').livequery('blur', function () {
    var value = $(this).val();
    alert(value);
});

或者查看此Simulating "focus" and "blur" in jQuery .live() method,因为.live不支持模糊和焦点