我的问题比这更复杂,但基本上当用户在页面上更改某些内容时,我想以某种方式将该字段标记为“脏”并使用确认框确保用户实际上想要离开失去变化之前的页面。
在这种情况下,我无法使用全局的“更改内容”变量,因为需要根据发生的其他事件在某些项目上添加/删除它。
主题中问题的答案应考虑多个因素:
基本上,我有一些看起来像这样的jQuery代码:
$(":input").on("change", function(event) {
// set something on $(this) to hold state for this item
// $(this).addClass("my-dirty-flag");
// or
// this.setAttribute("data-dirty-flag", "data-dirty-flag");
});
哪个选项“更好”,为什么?
有一件事让我甚至考虑问这个问题,AngularJS似乎使用标签上的属性来做这类事情。
答案 0 :(得分:2)
我会为此目的使用类,因为您可以使用本机JS代码查找它们。寻找data- *属性是一个更重的操作,因为JavaScript必须遍历所有元素属性。你可以查看其他帖子来支持我,如下所示: