Dhtml 属性编程之原创笔记
作者:色眯眯的小疯狗 发布时间:2014-07-23 12:51:54
一、属性控制
属性是用来标识一个对象或是一组对象的状态,比如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一样的效果了。


猜你喜欢
- 本文实例讲述了python创建关联数组(字典)的方法。分享给大家供大家参考。具体分析如下:关联数组在python中叫字典,非常有用,下面是定
- MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是My
- 目录解决MySQL主从数据库没有同步的两种方法一、不同步情况二、解决方案1.先进入主库,进行锁表,防止数据写入2.进行数据备份3.查看mas
- 由于代码比较短,这里就不进行注释了代码如下:<% '当目标页面的包含文件即#include的页面里边存在respon
- 进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。那什么是多线程?提到多线程这里要说
- 以下以 IE 代替 Internet Explorer,以 MF 代替 
- 假如Excel中的数据如下:数据库建表如下:其中Id为自增字段:代码:using System;using System.Collectio
- 如下所示:import tkinterfrom tkinter import ttk #导入内部包win=tkinter.Tk()tree=
- 常规循环引用内存泄漏和Closure内存泄漏 要了解javascript的内存泄漏问题,首先要了解的就是javascript的GC原理。我记
- XML、 XLink、 Namespace、 DTD、 Schema、 CSS、 XHTML...假如你从未接触XML, 或许你会感觉不知从
- 目录一,猫狗数据集数目构成二,数据导入三,数据集构建四,模型搭建五,模型训练六,模型测试作为tensorflow初学的大三学生,本次课程作业
- 前言这篇文章主要介绍了JS大坑之19位数的Number型精度丢失问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 先以mysql的语句,聚合用在分组里,对mysql中groupby 是分组每什么的时候就要分组,如 每个小组,就按小组分,group by
- 1.API接口:hello world 案例from flask import Flaskfrom flask_restful import
- 前言这篇文章主要介绍了使用Python画了一棵圣诞树的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价
- 如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然。要加一个进度条其实只需要几行代码。在这几行代码中,我们可以看
- 根据Django官方文档介绍:A one-to-one relationship. Conceptually, this is simila
- 使用smtplib模块发送邮件,供大家参考,具体内容如下1)使用smtplib模块发送简单邮件步骤:1.连接SMTP服务器,并使用用户名、密
- 机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了。查看m
- 本文实例为大家分享了python微信跳一跳的具体代码,供大家参考,具体内容如下部分代码分享:wechat_jump.pyfrom __fut