2013-06-07 4 views
-1

로그인 자격 증명이 맞으면 변수를 기반으로 로그인 양식을 흔들려고합니다. 이 변수는 msg입니다.내 브라우저의 스크립트가 내 코드 편집기의 파일과 다릅니다. 왜?

jsfiddle example 보면 이제 (실행을 클릭하여 테스트를, 그것은 흔들 것)은, 그것을 잘 작동하지만 난 내 응용 프로그램에서 사용하려고하면 다음 줄 $this.css({$this is not defined 같은 오류를 제공합니다.

내 코드에 $(this).css({을 써 왔지만 콘솔에 이라는 오류가 표시됩니다.

사용자가 잘못된 자격 증명을 채우는 것처럼 변수가 서버 측에서 가져 오기 때문에 변수에 아무 것도 할 필요가 없음을 유의하십시오. $message이 비어 있습니다. alert box을 사용하여이 상태를 확인했습니다.

내 응용 프로그램에서 jQuery 1.7을 사용하고 있습니다. 내 응용 프로그램에서 사용

코드는 다음과 같습니다

<html> 
<head> 
<title>Test</title> 
<meta http-equiv="Content-Type" content="text/html;"> 
<script type="text/javascript" src="xyz/js/jquery.js"></script> 
<script type="text/javascript"> 
$(function() { 
$("input:text:visible:first").focus(); 
var msg = "$message" 
if (msg.length!==0){ 
alert("message is not empty"); 
jQuery.fn.shake = function(intShakes, intDistance, intDuration) { 
    this.each(function() { 
    $(this).css({ 
     position: "relative" 
    }); 
    for (var x = 1; x <= intShakes; x++) { 
     $(this).animate({ 
     left: (intDistance * -1) 
     }, (((intDuration/intShakes)/4))).animate({ 
     left: intDistance 
     }, ((intDuration/intShakes)/2)).animate({ 
     left: 0 
     }, (((intDuration/intShakes)/4))); 
    } 
    }); 
    return this; 
}; 
$('#login').shake(2, 13, 250); } });</script> 

</head> 
<body class="login login-action-login wp-core-ui"> 
<div id="wrapper"> 
<div id="login"> 
    <form name="form_login1" action="$action" method="post"> 
     <input type="hidden" name="command" value="login"> 

    <p><label>Username<br> 
    <if condition="enable_password_cookie"> 
     <input type="text" name="login2" value="$login_from_password_cookie" onchange="document.form_login2.login.value = this.value" id="user_login" class="input" size="20" tabindex="1"> 
    </if> 
    <else> 
     <input type="text" id="user_login" class="input" name="login2" size="20" onchange="document.form_login2.login.value = this.value"> 
    </else> 
     </label></p>   
    </form> 

    <form name="form_login2" action="$action" method="post"> 
     <input type="hidden" name="login"> 
     <input type="hidden" name="command" value="login"> 
     <input type="hidden" name="extra_param" value="$extra_param"> 
     <p> 
       <label>Password 
     <input type="password" name="password" is="password" id="password" class="input" value="" size="20"> 
     </label> 
      </p>  

    <p class="submit"> 
    <input type="submit" value="Login" onclick="javascript:submit_login();" id="wp-submit" class="button button-primary button-large"> 
    </p><br><br> 
    <p class="error">$message</p> 

</div><br> 

    </form> 

</div>  
</div> 
</html> 

PS : 나는 캐시를 청소하려고했지만, 아직도 내가이 오류를 얻을 : http://i.imgur.com/TNBgQM8.png

편집 2 : 나는 캐시를 청소하고 한 모든 브라우저 데이터가 표시되지만 여전히 변경되는 것을 볼 수 있습니다. $(this).css ~ $this.css. 나는 이유를 모르겠다? :/

+0

오류에 대해 더 자세히 알 수 있습니까? –

+0

캐시를 지우셨습니까? –

+0

코드에'$ this'가 없으므로 캐시를 지우십시오 –

답변

0

roasted's comment 내 문제가 해결되었습니다.

$(this)$(this)으로 변경해야했습니다.

0

1) this은 jquery 개체가 아닙니다. $(this)

2) 브라우저에 실제 디렉토리와 다른 코드가 표시되면 응용 프로그램의 캐시를 업데이트하십시오.

3) 브라우저 디버거에 표시되는 내용은 브라우저가받는 실제 코드입니다. $ (this) 대신 $ this가 실제 코드라고 확신하는 경우 $ this를 $ (this)로 대체하십시오.

+0

업데이트 된 질문은 imgur link를 참조하십시오. –

+0

@Chankey Pathak, 오래된 코드 조각을 얻는 브라우저. 브라우저에 최신 코드가 제공되는지 확인하십시오. 여기서 게시 한 코드에는 아무런 문제가 없습니다. –

+0

예, '$ (this)'를'$ this '로 변경합니다. 하지만'$ this '라고 쓰지 않았습니다. 캐시도 지 웠습니다. –

관련 문제