我有一个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不应该运行。
有什么想法吗?
由于
答案 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/
富