-1

ログイン資格情報が正しい場合は空である変数に基づいて、ログインフォームをシェイクしようとしています。この変数はmsg.

このjsfiddle の例(実行をクリックしてテストすると揺れます) が表示された場合、問題なく動作しますが、アプリケーションで使用しようとすると、エラーが発生し$this is not definedます$this.css({

コードを書き$(this).css({ましたが、コンソールにエラーが表示され$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. わからない どうして?:/

4

2 に答える 2

0

1)thisあなたの場合はjqueryオブジェクトではありません。使用する$(this)

2) ブラウザーが実際のディレクトリにあるものとは異なるコードを表示する場合は、アプリケーションのキャッシュを更新します。

3) ブラウザーのデバッガーに表示されるのは、ブラウザーが取得する実際のコードです。$(this) の代わりに $this を使用したコードが実際のコードであることが確実な場合は、$this を $(this) に置き換えてください。

于 2013-06-07T08:40:59.130 に答える
0

ローストのコメントは私の問題を解決しました。

に変更$(this)する必要がありました$( this )

于 2013-06-07T09:56:28.913 に答える