在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;
    }); 
 });