jQuery在静态变量和重用中保持元素的类

时间:2018-05-10 18:31:53

标签: javascript jquery html class

假设我有一个包含多个类的元素:<div id='foo' class='Test1 Test2 Test3'>foo</div>

在每个keyup事件上执行的脚本:

$('#foo').on('keyup', function() {
     // Do something here that changes the classes
});

如何在初始键入之前捕获此元素的初始类(并且只进行第一次初始更改),将它们存储在变量中,然后将它们重新应用于此元素?

我考虑使用全局静态变量,但我相信那里有更好的解决方案。

1 个答案:

答案 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
  }
});