javascript - jQuery 将元素的类保存在静态变量中并重用
问题描述
假设我有一个包含多个类的元素:<div id='foo' class='Test1 Test2 Test3'>foo</div>
以及在每个 keyup 事件上执行的脚本:
$('#foo').on('keyup', function() {
// Do something here that changes the classes
});
我怎样才能在初始 keyup 之前捕获这个元素的初始类(并且只有第一个初始更改),将它们存储在一个变量中,然后将它们重新应用到这个元素?
我考虑过使用全局静态变量,但我相信那里有更好的解决方案。
解决方案
如果该属性未初始化,则将元素的类保存到数据属性。
否则,从该数据属性恢复元素的类:
$('#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
}
});
推荐阅读
- android - iPhone 屏幕 DPI 等效于 Android 分辨率
- c++ - 使用 pthread 进行多线程
- c# - 无法评估关于 JSON 反序列化的表达式
- javascript - 如何在客户端而不是服务器端将我的 pug 文件呈现为 html
- angular - Nx Angular Workspace:如何在多个应用程序之间共享 index.html?
- image - 将 Datastudio 导出为 pdf 后图像损坏
- python - Pytorch 大小与 pad_packed_sequence、seq2seq 不一致
- html - 具有 2 列的键值信息框。不是表
- c++ - C++:禁用隐式转换警告
- javascript - Slick.js - 多个轮播在自动播放时不同步