2015-07-19 52 views
0

正如你所看到的,我试图增加文本字段的高度,当用户键入它并且当他点击时(元素失去焦点),我正在缩小它。jQuery onfocus和onblur事件缩小

有没有更简单的方法来编写下面的代码?

简单的HTML输入字段:

<input type="text" />

的jQuery:

$(document).ready(function() { 

    $('input').on('focus', function() { 
     $(this).height('20px'); 
    }); 

    $('input').on('blur', function() { 
     $(this).height('12px'); 
    }); 

}); 
+2

你可以只用CSS这样做:'输入:重点{高度:20px的; }' –

+0

那么我正在学习jQuery,想知道jQuery的方式没有CSS方式。 –

回答

1

这可以更有效地与刚刚CSS进行,但使用jQuery,您可以使用事件委托。

$(document).on('focus blur', 'input', function(e) { 
    $(this).height(e.type === 'focusin' ? '20px' : '12px'); 
}) 

为了完整起见,这里的CSS解决方案:

input { 
    height: 12px; 
} 
input:focus { 
    height: 20px; 
} 
+0

不起作用.... –

+0

@Robert我把事件搞混了,现在可能会起作用。我现在在移动,所以我无法测试它。 –

+0

仍然无法正常工作https://jsfiddle.net/0wfy7xcf/ –