2012-01-17 16 views
3

私は、サイト上のフォームに対して簡単なオン/オフのボケ復元ツールを作成しようとしています。なぜこれが機能しないのか理解できません。jQueryの関数間で変数を引き渡す

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

}); 

+1

正確には動作しません。なぜあなたはいつも虚偽に戻っていますか? –

+0

ぼかし関数は何をすべきか?パラメータを参照するだけで、何もしません。あなたはフォーカス機能で空の文字列を使って何をするのですか? –

+0

Nadir:ぼかしの名前の元の値を復元していません。 –

答えて

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

}); 
0

2つのこと使用することができますされていない$(この).ATTR( '値')と$(この(.val()と同じ値を参照し、またはAM私は何かが足りない?「ぼかし」イベントで

、それは方法ではなく、変数であるかのように、あなたが「キーパー」を使用していない?

7

だけ外側のスコープで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; 
    }); 
}); 
+0

それは完璧に機能しました!本当にありがとう。 –

+0

@ user1153022喜んで助けてください:) – xdazz

+2

これはあなたのために働いた場合は、彼の答えを受け入れる必要があります –

関連する問題