设为首页收藏本站

成都热线论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 原野清风
打印 上一主题 下一主题

《蟠龙谷》之溜达团修炼圆满

[复制链接]
71#
发表于 2005-7-11 21:41:00 | 只看该作者
<P>有专业水准哈,</P><P>不错.</P>
72#
发表于 2005-7-11 23:43:00 | 只看该作者
<P>好漂漂的PP!!!!!!!!!!</P><P>大自然的秀美精华!!!</P>
73#
发表于 2005-7-12 09:43:00 | 只看该作者
<B>以下是引用<I>somelao</I>在2005-7-11 16:35:19的发言:</B>


<P>呵呵,我也有爱心哈 ~</P>

<P></P>
<P>你这也叫有爱心?</P>
<P>。。。。。。。。。。。。</P>
<P>看看人家是怎么抱你的?</P>
<P></P>
74#
发表于 2005-7-12 09:58:00 | 只看该作者
我都把大瀑布那张PP设成桌面了~~
75#
发表于 2005-7-12 15:06:00 | 只看该作者
<P>不错哈</P><P>风景这边独好!</P><P>清风明月摄,</P><P>意境实在是高!</P>
76#
发表于 2005-7-12 15:23:00 | 只看该作者
<B></B>

我都把大瀑布那张PP设成桌面了~~ <P>   俺也是哈</P><P>在桌面上铺了一条大瀑布</P>
77#
发表于 2005-7-12 15:30:00 | 只看该作者
<P></P><P>嘿嘿,是在进洞房的路上?</P>[em04][em04]
78#
发表于 2005-7-12 16:05:00 | 只看该作者
<P>一、属性控制

属性是用来标识一个对象或是一组对象的状态,比如Radio的Checked表示的是当前单选按钮是否被选中。

如果我们选中一个单选按钮时想显示一个文本框,即 “当选中单选按钮时显示文本框”,但大多数情况下我们并不是这样处理,更多的是通过:

事件(onclick, onkeydown,…) ---&gt; 判断当前状态(Checked是否为True) ---&gt; 调用相应的Function(显示或隐藏文本框)

这样的处理方法非常被动,我们要为每一个事件加上相同的代码来实现最终的目的,很有可能的是在Coding过程中的忽略的某些事件(比如onkeypress, onkeydown等),并且程序的扩展性不强。

对于一个属性,特别是状态属性来说,它应当起到的是一个命令的作用,就像是CEO告诉你现在要去做什么,但这件事如何去做,用什么方法去做,这应当由你自己去决定。

因此,对于属性的操作应该尽量是
控制器:事件或其它Function ---&gt; 设置属性
处理器:属性改变时 ---&gt; 调用处理器(判断属性的状态,做出相应的处理)
通过属性为分界线,我们把它分为了控制和处理两个部分,这样在整个属性处理流程中灵活性会增加很多。

那我们应该如何来实现这样的想法呢?

1. onpropertychange
&lt;html&gt;&lt;head&gt;&lt;script language="javascript"&gt;function changeBox(status){textbox.style.display = status ? "" : "none"}&lt;/script&gt;&lt;script language="javascript" for="test" event="onpropertychange"&gt;var propName = event.propertyNamevar propValue = this[propName]switch(propName){case "checked":changeBox(propValue)break;}&lt;/script&gt;&lt;/head&gt;&lt;body&gt;&lt;input type="radio" id="test" name="radio" checked="true" /&gt;&lt;input type="radio" name="radio" /&gt;&lt;input id="textbox" /&gt;&lt;/body&gt;&lt;/html&gt;
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

2. Htc
在HTC中实现很容易,Microsoft已经做好了相应的接口,直接使用property元素的get和put方法就行了。

3. 自定义
我们需要做一个属性控制器就能做到这一点,如:
function controlAttribute(对象,属性,设置的值)
{
对象.属性 = 设置的值
调用 对象.绑定在属性变化事件的函数(属性)
}

所有的属性设置通过属性控制器去执行,这样就能做到和onpropertychange或是HTC一样的效果了。 </P><P>二、局部属性

在某些时候可能几个元素同时只使用一个属性,比如select中的option,在大多数情况中他们只可能有一个selected为True,其余的都为Flase,那么我们可以把它看做在这一组的option中只有一个selected,在HTML代码中我们也是这样表示的。
所以就需要一个在局部区域使用的属性来标识,它就像是一个令牌一样可以在不同的元素这间移动,这就确保了属性的唯一性,并且若是想改变属性的状态时,你不须要考虑这个属性在哪一个元素上,直接改变属性的状态。

下面我们看一下例子,由于IE6的在DOM支持上的不完善,所以写这个程序过程中有一些附加的代码,如要通过一个全局的TR变量记录属性所在的对象名称(DOM中可以通过 属性.parentNode 得到)等
&lt;script&gt;function findParentObj(obj, strTagName, strId){ while ( obj &amp;&amp;    !(!strTagName || obj.tagName == strTagName) &amp;&amp;     (!strId || obj.id == strId)   )  obj = obj.parentElement return obj}var oTRbgColorOver    = document.createAttribute("bgColor")bgColorOver.nodeValue = "red"bgColorOut    = document.createAttribute("bgColor")bgColorOut.nodeValue = "transparent"function highlight(obj) { if (oTR) {  oTR.removeAttributeNode(bgColorOver)  oTR.setAttributeNode(bgColorOut)  oTR.removeAttributeNode(bgColorOut) } oTR     = findParentObj(event.srcElement, "TR") if (oTR) oTR.setAttributeNode(bgColorOver)}&lt;/script&gt;&lt;table border="1" bgcolor="#FFFFFF" onclick="highlight(this)" onmouseover="highlight(this)"&gt;&lt;tr&gt;    &lt;td&gt;序&lt;/td&gt;    &lt;td&gt;单位编码&lt;/td&gt;    &lt;td&gt;单位名称&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;&lt;input type=text value=01&gt;&lt;/td&gt;    &lt;td&gt;&lt;input type=text value=DW001&gt;&lt;/td&gt;    &lt;td&gt;&lt;input type=text value=微软公司&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;    &lt;td&gt;&lt;input type=text value=02&gt;&lt;/td&gt;    &lt;td&gt;&lt;input type=text value=DW002&gt;&lt;/td&gt;    &lt;td&gt;&lt;input type=text value=英特公司&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;    &lt;td&gt;&lt;input type=text value=03&gt;&lt;/td&gt;    &lt;td&gt;&lt;input type=text value=DW003&gt;&lt;/td&gt;    &lt;td&gt;&lt;input type=text value=中国公司&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] </P>
请大家文明上网。文明交流!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|成都热线 ( 蜀ICP备09003094号 )  

GMT+8, 2026-4-30 22:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc. 成都伊索信息科技有限公司

快速回复 返回顶部 返回列表