jQuery做一个LIVE Focus点击/模糊事件

时间:2011-01-15 23:34:01

标签: jquery focus blur

我有一个textarea。我想要发生的是当用户专注于textarea以使其增长到4em时,当用户没有聚焦在textarea / blur out时,将其返回到默认的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的唯一例外是,如果用户点击附加文件,则removeClass不应该运行。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

我将removeClass函数放在大约500毫秒的setTimeout代码块中。仅当attachfile元素没有“active”类时才启动代码。然后,向attachfile元素添加一个事件处理程序,在单击时添加一个“active”类。

$('.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');
});

更新16/01/11

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