我正在开发一个使用旧jQuery 1.3.2 的项目。我需要在blur
上focus
输入值并在focusout
上返回(如果没有更改)(此处不能使用placeholder
)。
这就是我正在做的事情:
console.log('start');
$('input[type=text]').live('focus', function() {
console.log('focused');
if (!$(this).data('defaultText')) $(this).data('defaultText', $(this).val());
if ($(this).val()==$(this).data('defaultText')) $(this).val('');
});
$('input[type=text]').live('blur', function() {
console.log('blurred');
if ($(this).val()=='') $(this).val($(this).data('defaultText'));
});
我在控制台中看到start
,但在聚焦输入时没有任何内容。我应该在这里改变什么?
答案 0 :(得分:1)
您可以在jquery 1.3.2
中使用jquery bind$('input[type="text"]').bind('focus',function() {
console.log('focused');
});
$('input[type=text]').bind('blur', function() {
console.log('blurd');
});
答案 1 :(得分:0)
(function(){
var special = jQuery.event.special,
uid1 = 'D' + (+new Date()),
uid2 = 'D' + (+new Date() + 1);
jQuery.event.special.focus = {
setup: function() {
var _self = this,
handler = function(e) {
e = jQuery.event.fix(e);
e.type = 'focus';
if (_self === document) {
jQuery.event.handle.call(_self, e);
}
};
jQuery(this).data(uid1, handler);
if (_self === document) {
/* Must be live() */
if (_self.addEventListener) {
_self.addEventListener('focus', handler, true);
} else {
_self.attachEvent('onfocusin', handler);
}
} else {
return false;
}
},
teardown: function() {
var handler = jQuery(this).data(uid1);
if (this === document) {
if (this.removeEventListener) {
this.removeEventListener('focus', handler, true);
} else {
this.detachEvent('onfocusin', handler);
}
}
}
};
jQuery.event.special.blur = {
setup: function() {
var _self = this,
handler = function(e) {
e = jQuery.event.fix(e);
e.type = 'blur';
if (_self === document) {
jQuery.event.handle.call(_self, e);
}
};
jQuery(this).data(uid2, handler);
if (_self === document) {
/* Must be live() */
if (_self.addEventListener) {
_self.addEventListener('blur', handler, true);
} else {
_self.attachEvent('onfocusout', handler);
}
} else {
return false;
}
},
teardown: function() {
var handler = jQuery(this).data(uid2);
if (this === document) {
if (this.removeEventListener) {
this.removeEventListener('blur', handler, true);
} else {
this.detachEvent('onfocusout', handler);
}
}
}
};
})();