2

我有一个文本区域。我想要发生的是当用户专注于 textarea 以使其增长到 4em 时,当用户没有专注于 textarea/模糊时,将其返回到默认的 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 不应该运行。

有任何想法吗?

谢谢

4

1 回答 1

1

我将 removeClass 函数放在大约 500 毫秒的 setTimeout 代码块中。仅当 attachfile 元素没有“活动”类时才触发代码。然后,向 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 年 16 月 1 日更新

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

富有的

于 2011-01-16T00:30:14.390 回答