Метод .bind () предназначен для элементов, которые существуют в настоящее время. Чтобы присоединить обработчики событий к элементам, которые в настоящее время существуют в DOM и , к любым будущим элементам, которые могут существовать, вы должны использовать метод .live () . Вы также можете использовать метод .delegate () , если вы не хотите, чтобы ваши события пузырились до самого верха DOM.
Кроме того, вы можете использовать метод .toggleClass () для переключения классов ваших элементов за один вызов функции. Таким образом, ваш код будет:
$(function() {
$('input[type=text], textarea').addClass("idleField"); // reset all ##
$('input[type=text], textarea').live("focus", function(event){
$(this).toggleClass("focusField idleField");
if (this.value == this.defaultValue) {
this.value = '';
}
if (this.value != this.defaultValue) {
this.select();
}
}).live("blur", function(event){
$(this).toggleClass("focusField idleField");
if ($.trim(this.value) == ''){
this.value = (this.defaultValue ? this.defaultValue : '');
}
});
});