Тег textarea
не закрыт, что может быть источником некоторого раздражения:)
Также может быть полезно отделить логику от обратных вызовов focus
и blur
в отдельную функцию, поскольку для обоих событий должны выполняться одинаковые проверки.
- если текстовое поле пусто, показать изображение
- в противном случае скрыть изображение
Еще одно преимущество выделения этой логики в отдельную функцию заключается в том, что вы можете вызвать эту новую функцию onload, которая инициализирует текстовую область до того, как произойдет какое-либо событие фокусировки или размытия.
В jsfiddle, когда вы выбираете опцию "onLoad"
слева, код JavaScript автоматически включается в обратный вызов window.load, поэтому вам не нужно указывать его в коде. Либо так, либо выберите параметр "No wrap"
, чтобы самостоятельно написать событие window.load в коде.
Обновление скрипки :
function init(text) {
text = $(text);
text.data('img', text.css('background'));
var update = function() {
if(text.val() == '') {
text.css('background', text.data('img'));
}
else {
text.css('background', 'none');
}
};
text.focus(update);
text.blur(update);
update();
}
init('textarea');