jQuery 执行实时焦点单击/模糊事件

标签 jquery focus blur

我有一个文本区域。我想要发生的是,当用户聚焦在文本区域时,它会增长到 4em,当用户没有聚焦在文本区域/模糊时,将其返回到默认的 1em。

这是我到目前为止所拥有的:

$('.comment_content').live('focus click', function() {
   $(this).addClass('grow');
}).live('blur', function() {
   $(this).removeClass('grow');
});

所以这工作得很好,但问题在于。用户可以将文件附加到评论中,例如:

<textarea type="text" class="comment_content"> </textarea>
<div id="attachfile">attach file</div>

我对上述 jQuery 的唯一异常(exception)是,如果用户单击附加文件,则删除类不应运行。

有什么想法吗?

谢谢

最佳答案

我将removeClass函数放在大约500毫秒的setTimeout代码块中。仅当 Attachfile 元素不具有“active”类时才触发代码。然后,将事件处理程序添加到 Attachfile 元素,这会在单击时添加“事件”类。

$('.comment_content').live('focus click', function() {
   $(this).addClass('grow');
});

$("body").live("click focus", function(evt) {
    if (!$(evt.target).is('.grow, #attachfile'))
       $('.comment_content').removeClass('grow');
});

更新 2011 年 1 月 16 日

今天早上更好地理解了这个问题,并创建了以下 jsFiddle。 http://jsfiddle.net/uc8Qv/

丰富

关于jQuery 执行实时焦点单击/模糊事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702807/

相关文章:

javascript - 始终将文本光标设置在文本框上

swift - 图像模糊

jQuery - 替换特定单词之前的 HTML 内容

jquery - 关闭/打开 Kendo UI 网格可编辑模式

javafx - 在JavaFX8中隐藏TextField的输入插入符

javascript - 如何触发 (window).focus 页面加载?

ios - 圆形 UIVisualEffectView

javascript if语句不起作用

jquery - 仅在鼠标悬停时显示图标

html - 字体大小随页面焦点或字段焦点而变化