-->

偷米寄居偷米寄居

...

« 大家好,我是天下最开心的编辑器 微格式 Microformats » hCard »

浅谈结构、行为分离

学前扫盲

行为

我们利用脚本为网页添加行为,其中以javascript为主流,

所谓行为(behavior)被定义为事件和动作的组合,即当网页的浏览者做了某件事情后,随之会有另外的事情发生,这个过程被称为行为。

结构

结构是指网页本身的HTML架构。

表现

表现是指网页的外观表现,我们利用层叠样式表(即CSS)修饰网页。

为何要分离

在项目进行时,我们提交页面后,程序开发工程师需要在HTML结构上编写行为代码。

例如:

<a href="javascript:alertTommy()">alert my name</a>
<script type="text/javascript">
	function alertTommy(){
		alert('tommy')
	}
</script>

由例子可以看出,a标签捆绑住了函数alertTommy()。

当函数需要改变,就比如tommy十年后己经不再是tommy,tommy现在是叫tom。

当然你可以修改alertTommy函数里面的内容alert(’tommy’)为alert(’tom’),让用户看到tommy的改变。

<a href="javascript:alertTommy()">alert my name</a>
<script type="text/javascript">
	function alertTommy(){
		alert('tom')
	}
</script>

现在感觉到问题的存在了吧?看一看结构, javascript:alertTommy();该死的tommy还是tommy。

如果不单单是名字变了。我点击不想弹出,而是把tommy的名字写在页面的某个div内,那函数名还是那样子alertTommy,这样的结果太糟糕了。

<a href="javascript:alertTommy()">alert my name</a>
<div id="div1">content</div>
<script type="text/javascript">
	function alertTommy(){
		document.getElemntById('div1').innerHTML = 'tom';
	}
</script>

然而后面还有更糟糕的事情会发生。

在用户禁用了浏览器脚本运行的时候,页面显示的是一个链接,但点击之后因为脚本被禁用根本没任何反应,就像这样:

alert my name

如何解决

其实我们可以这样让变得简单!

在我们给于程序开发工程师页面的时候结构附加上一个id,然后链接地址给于正确的地址或者页面锚点,最后使用脚本为这id所属无素添加事件。

<a href="http://www.tommyfan.com/" id="link1" >alert my name</a>
<script type="text/javascript">
	...
	window.onload = function(){
		document.getElementById('div1').onclick = function(){
			document.getElemntById('div1').innerHTML = 'tom'
		}
	}
</script>

一个简单的例子

点击查看div内容…

2009-5-9 16:14 no comments 994 views

Leave a comment

*
*

Hot Articles

  1. 微格式 Microformats » hCard

    5,308 views

  2. 用hCard添加手机联系人

    3,931 views

  3. ie8新特性的应用

    2,448 views

  4. 纯CSS搞定按钮、链接点击时的虚线

    2,313 views

  5. 神奇!IE下鼠标中轴滚动无效

    2,024 views

New Comments

My Friends