我正在尝试为网站上的表单制作一个简单的焦点清晰/模糊恢复器,我不能为我的生活弄清楚为什么这不起作用。
$(document).ready(function() {
$('.form-text').focus(function(keeper) {
var keeper = $(this).attr('value');
if($(this).val() == keeper) {
$(this).val('');
}
return false;
});
$('.form-text').blur(function(keeper) {
if($(this).val() == '') {
keeper;
}
return false;
});
});
有什么想法吗?
答案 0 :(得分:10)
只需在外部范围内设置keeper
,不需要是全局的。
并且var keeper = $(this).attr('value'); if($(this).val() == keeper)
将永远为真,所以这不是必需的。
$(document).ready(function() {
var keeper;
$('.form-text').focus(function() {
keeper = $(this).val();
$(this).val('');
return false;
});
$('.form-text').blur(function() {
if($(this).val() == '') {
$(this).val(keeper);
}
return false;
});
});
答案 1 :(得分:2)
jQuery提供method to store data for you:
集:
$("#selector").data('name', 'value');
获取:
var path = $(this).data('name'); // Get the stored resul
吨
答案 2 :(得分:2)
您可能想要var keeper
全球。
你可以用这个
var keeper = "";
$(document).ready(function() {
$('.form-text').focus(function(keeper) {
keeper = $(this).attr('value');
if($(this).val() == keeper) {
$(this).val('');
}
return false;
});
$('.form-text').blur(function(keeper) {
if($(this).val() == '') {
keeper;
}
return false;
});
});
答案 3 :(得分:0)
两件事:不是$(this).attr('value')和$(this(.val()引用相同的值,或者我错过了什么?
在“模糊”事件中,您是否使用“守护者”,就好像它是一个方法,而不是一个变量?