2016-04-25 60 views
0

我只是无法弄清楚一个行为,我不是一个JQuery专家,这让我很头疼。 所以,在我的文件准备好,我有添加的JQuery类不会持续发生变化

$('#Table').on('change', '#TeamValue', function (event) { 
     $(this).removeClass("valid"); 
     $(this).addClass("input-validation-error"); 
     var myClass = $(this).attr('class'); 
     console.log(myClass); 
    } 
}); 

在控制台中我看到了改变类但前面事实并非如此。这是为什么发生? 我还看到,当我删除内容我的输入验证错误类似乎很好......我只是不明白。 有人能帮我一下吗?

谢谢!课改前

输入:

<input id='TeamValue' type='text' class='small-textbox'> 

控制台日志:

text:a -.js:451:1 
wroing! -.js:456:13 
small-textbox input-validation-error 

该元素的HTML后,他的课被改变:

<input id="TeamValue" onkeyup="Restriction()" class="small-textbox valid" type="text"> 
+0

你的意思是与该类相关的CSS是不生效?另外,你可以发布一些HTML吗? – nurdyguy

+0

我在第一篇文章中增加了更多细节。在我的功能结束后,该类会以某种方式被删除,我不知道如何... –

+0

从你有什么它看起来是正确的。是否有代码可能会干扰? – nurdyguy

回答

-1

$(this)方面你是指可能是#Table元素而不是#TeamValue您期待的元素。我的假设是,类变化是在该元素上发生的。尝试直接连接的更改处理到#TeamValue元素:

$('#TeamValue').on('change', function (event) { 
    $(this).removeClass("valid"); 
    $(this).addClass("input-validation-error"); 
    var myClass = $(this).attr('class'); 
    console.log(myClass); 
}); 

```

+0

这是不正确的。这个指针引用#TeamValue。虽然他可能应该改变绑定以符合你的要求,但只是因为他使用了ID并且可能会利用该ID。 – nurdyguy