正如您可能已经知道的那样,在JQuery中选择具有特定CSS类的文档中的所有元素是很简单的,然后使用链接将常用事件处理程序分配给所选元素:
$(".toolWindow").click(toolWindow_click); $(".toolWindow").keypress(toolWindow_keypress);
像往常一样,类"toolWindow"通常也在CSS中定义并与一些视觉样式相关联:
.toolWindow{ color:blue; background-color:white; }
class属性现在不仅要指示元素的外观(可视状态),还要指示行为.因此,我经常使用这种方法并将CSS类名称更多地定义为伪对象类,然后仅视觉化CSS类.换句话说,每个类都代表状态(CSS样式)和行为(事件).
在某些情况下,我甚至创建了没有视觉样式的类,只是使用它们作为向元素分配行为的便捷方式.
此外,jQuery LiveQuery插件(以及live()内置函数)通过自动将事件绑定到属于特定类的动态创建元素,使这种方法更加有效.
最近我主要使用类名来定义关联DOM元素的一组公共行为,并且稍后使用它们来定义视觉样式.
问题:这是一个可怕的滥用CSS"类"属性,如果是这样,为什么?
另一方面,也许这是进一步实现"关注点分离"和提高HTML/DHTML页面可维护性的完美有效方法?
"类"实际上是文档数据的一部分(并且希望语义相关),而不是它的样式或设计.
这就是为什么两者都可以使用的原因.
这是完全有效的方法.
类属性没有定义行为 - JS通过CSS 选择器(谢谢jQuery)来实现它.
类属性不定义视觉样式 - CSS 规则执行此操作.