一、属性控制
属性是用来标识一个对象或是一组对象的状态,比如Radio的Checked表示的是当前单选按钮是否被选中。
如果我们选中一个单选按钮时想显示一个文本框,即 “当选中单选按钮时显示文本框”,但大多数情况下我们并不是这样处理,更多的是通过:
事件(onclick, onkeydown,…) ---> 判断当前状态(Checked是否为True) ---> 调用相应的Function(显示或隐藏文本框)
这样的处理方法非常被动,我们要为每一个事件加上相同的代码来实现最终的目的,很有可能的是在Coding过程中的忽略的某些事件(比如onkeypress, onkeydown等),并且程序的扩展性不强。
对于一个属性,特别是状态属性来说,它应当起到的是一个命令的作用,就像是CEO告诉你现在要去做什么,但这件事如何去做,用什么方法去做,这应当由你自己去决定。
因此,对于属性的操作应该尽量是
控制器:事件或其它Function ---> 设置属性
处理器:属性改变时 ---> 调用处理器(判断属性的状态,做出相应的处理)
通过属性为分界线,我们把它分为了控制和处理两个部分,这样在整个属性处理流程中灵活性会增加很多。
那我们应该如何来实现这样的想法呢?
1. onpropertychange
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
2. Htc
在HTC中实现很容易,Microsoft已经做好了相应的接口,直接使用property元素的get和put方法就行了。
3. 自定义
我们需要做一个属性控制器就能做到这一点,如:
function controlAttribute(对象,属性,设置的值)
{
对象.属性 = 设置的值
调用 对象.绑定在属性变化事件的函数(属性)
}
所有的属性设置通过属性控制器去执行,这样就能做到和onpropertychange或是HTC一样的效果了。
二、局部属性
在某些时候可能几个元素同时只使用一个属性,比如select中的option,在大多数情况中他们只可能有一个selected为True,其余的都为Flase,那么我们可以把它看做在这一组的option中只有一个selected,在HTML代码中我们也是这样表示的。
所以就需要一个在局部区域使用的属性来标识,它就像是一个令牌一样可以在不同的元素这间移动,这就确保了属性的唯一性,并且若是想改变属性的状态时,你不须要考虑这个属性在哪一个元素上,直接改变属性的状态。
下面我们看一下例子,由于IE6的在DOM支持上的不完善,所以写这个程序过程中有一些附加的代码,如要通过一个全局的TR变量记录属性所在的对象名称(DOM中可以通过 属性.parentNode 得到)等
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 没有查询到任何记录。
最新文章
页面进入效果表单
XHTML校验需要注意的6个细节CSS样式表创建美妙绝伦的网站了解XHTML DHTML SHTML之间的区别HTML小技巧的一些小技巧
人气排行 容易被误解的overflow:hiddenCSS中dashed和dotted的区别CSS水平和垂直居中的几种实现方法DIV+CSS自适应高度兼容IE6,ie7,ie8和FF的解css优先级问题如何用CSS实现图片圆角化处理超链接target=_blank的使用方法Ctrl+H键的用法
查看所有0条评论>>