假设我有一个包含多个类的元素:<div id='foo' class='Test1 Test2 Test3'>foo</div>
在每个keyup事件上执行的脚本:
$('#foo').on('keyup', function() {
// Do something here that changes the classes
});
如何在初始键入之前捕获此元素的初始类(并且只进行第一次初始更改),将它们存储在变量中,然后将它们重新应用于此元素?
我考虑使用全局静态变量,但我相信那里有更好的解决方案。
答案 0 :(得分:1)
如果该属性未初始化,则将元素的类保存到数据属性。
否则,从该数据属性恢复元素的类:
$('#foo').on('keyup', function() {
if(!$(this).data('classes')) {
$(this).data('classes', $(this).attr('class')); //store initial state
} else {
$(this).attr('class', $(this).data('classes')); //restore initial state
}
});