我正在尝试根据变量来修改我的登录表单,如果登录凭据正确,则该变量为空。此变量为msg
。
现在,如果您看到此jsfiddle example(点击“运行”进行测试,它会动摇),它运行正常,但如果我尝试在我的应用程序中使用,那么它会在行$this is not defined
中出错{1}}。
我在代码中写了$this.css({
,但控制台显示$(this).css({
错误。
请注意,它不必对变量执行任何操作,因为我从服务器端获取变量,就像用户填写错误凭据时$this.css({
非空。我使用$message
检查了这个条件。
我在我的应用程序中使用jQuery 1.7。
我的应用中使用的代码是:
alert box
PS:我尝试过清理缓存,但我仍然收到此错误:http://i.imgur.com/TNBgQM8.png
编辑2:我已经清理了缓存和所有浏览器数据,但我仍然可以看到它正在将<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>
更改为$(this).css
。我不明白为什么? :/
答案 0 :(得分:0)
1)你的情况下this
不是jquery对象。使用$(this)
2)如果浏览器显示的代码与实际目录中的代码不同,请更新应用程序的缓存。
3)您在浏览器调试器中看到的是您的浏览器获得的实际代码。如果您确定使用$ this代替$(this)的代码是实际代码,只需将$ this替换为$(this)
答案 1 :(得分:0)
roasted's comment解决了我的问题。
我必须将$(this)
更改为$( this )
。