在jQuery中的函数之间传递变量
我正在尝试为网站上的表单制作一个简单的聚焦清晰/模糊恢复程序,但我一辈子都不明白为什么这样做不起作用在jQuery中的函数之间传递变量,jquery,function,variables,Jquery,Function,Variables,我正在尝试为网站上的表单制作一个简单的聚焦清晰/模糊恢复程序,但我一辈子都不明白为什么这样做不起作用 $(document).ready(function() { $('.form-text').focus(function(keeper) { var keeper = $(this).attr('value'); if($(this).val() == keeper) { $(this).val(''); }
$(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;
});
});
有什么想法吗?jQuery提供了一个:
设置:
获取:
var path=$(this).data('name');//获取存储的结果
t您可能希望将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;
});
});
有两件事:$(this.attr('value')和$(this(.val())不是指同一个值,还是我缺少了什么
在“模糊”事件中,您是否将“keeper”当作一种方法而不是变量来使用?只需将
keeper
置于外部范围内,无需全局。
而var keeper=$(this.attr('value');if($(this.val()==keeper)
将始终为true,因此这是不必要的
$(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;
});
});
到底是什么不起作用?还有为什么你总是返回false?模糊函数应该做什么?它只是引用参数,对它没有任何作用。你的意思是对聚焦函数中的空字符串做什么吗?Nadir:它不会恢复模糊上name的原始值。Dave:它应该清除该值表单中的输入对象。代码会这样做,但不会恢复模糊上的值。
$(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;
});
});