Передача переменных между функциями в jQuery - PullRequest
4 голосов
/ 17 января 2012

Я пытаюсь сделать более простой и четкий инструмент для восстановления форм на сайте и не могу понять, почему это не работает.

$(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;
    }); 

 });

Есть мысли?

Ответы [ 4 ]

10 голосов
/ 17 января 2012

Просто сделайте 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;
    }); 
 });
2 голосов
/ 17 января 2012

вы можете сделать 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;
    }); 

 });
2 голосов
/ 17 января 2012

jQuery предоставляет метод для хранения данных для вас :

Набор:

$("#selector").data('name', 'value');

Получить: var path = $(this).data('name'); // Get the stored resul t

0 голосов
/ 17 января 2012

Две вещи: не $ (this) .attr ('value') и $ (this (.val (), ссылающиеся на одно и то же значение, или я что-то упустил? *

).Событие "blur", разве вы не используете "keeper", как если бы это был метод, а не переменная?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...