2012-01-17 2 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

두 가지 사용할 수 있습니다하지 $ (이) .attr ('값')와 $ (이 (.val()는 같은 값을 참조를, 또는 오전 내가 모르는 뭔가가?은 "흐림"이벤트에서

, 그것은 방법, 변수가 아닌 것처럼 당신은 "골키퍼"를 사용하지 않는?

7

그냥 외부 범위에 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; 
    }); 
}); 
+0

완벽하게 작동했습니다! 정말 고마워. –

+0

@ user1153022 도와 드리겠습니다. – xdazz

+2

이것이 효과가 있다면 답을 받아 들여야합니다. –