jquery - 对类元素进行聚焦或模糊

标签 jquery

我试图在输入元素失去焦点时更改它的类。该项目的整个前提是允许用户双击某些文本,然后能够编辑该文本。然后,当他们失去对该字段的关注时,它应该看起来不是表单的一部分。

我的问题出在这里:

$('.actdblclk').dblclick(function(){

    $(this).removeClass('actdblclk').addClass('actdblclk_active').focus();

});

$('.actdblclk_active').focusout(function(){
    alert();

    $(this).removeClass('actdblclk_active').addClass('actdblclk');
});

双击时我获得了输入字段的焦点,但是当我单击关闭时,焦点事件不会触发。

这是整个 fiddle http://www.jsfiddle.net/t8JsG/

最佳答案

focusout() 事件处理程序不会触发,因为此时它被分配,不存在类为 .actdblclk_active 的元素。

您应该在 dblclick() 内分配一个 focusout() 处理程序,如下所示:

$('.actdblclk').dblclick(function(){
  $(this).removeClass('actdblclk').addClass('actdblclk_active').focus();
  $(this).focusout(function(){
    alert();

    $(this).removeClass('actdblclk_active').addClass('actdblclk').unbind('focusout');

  }) 
});

更新:第二个选项是使用 jQuery.live() 分配 focusout() 处理程序,如下所示:

$('.actdblclk_active').live('focusout', function(
  alert();
  $(this).removeClass('actdblclk_active').addClass('actdblclk');)
});

这样,该处理程序将被分配给当前和任何与 .actdblclk_active 选择器匹配的 future 元素

关于jquery - 对类元素进行聚焦或模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4514269/

相关文章:

javascript - 如何使用 jQuery 从 AJAX 请求获取响应文本

jquery如何验证文件字段?

javascript - 如何使用 jQuery 删除表格的特定行?

jquery - 让div动态填充剩余空间

jquery - 链接处于事件状态时保持悬停效果

javascript - 专注于使用 TAB 键的 jQuery UI 日历可访问性

未找到 Jquery 方法

jquery - 图像 slider 无法正常工作

javascript - 如何通过jQuery获取客户端分配或设置的标签值

javascript - 如何让这个 float 图标下降并保持粘性