Behaviour.js 真正的清洁了html?

Posted on 2005-11-24 23:10 BlueO2 阅读(928) 评论(1)  编辑  收藏 所属分类: AJAX

http://bennolan.com/behaviour/   为了避免在html中引入过多的script tag,尤其现在富客户端应用很火的时候,script写的就越发的多。
官方网站举了一个这样子的例子

<div id="image_16209134_normal">
<script language="Javascript">
photo_hash['
16209134'] = new Object();
photo_hash['
16209134'].title =
 '2am on Saturday';
</script>
<h4 id="title_div16209134" 
    style
="margin-bottom: 0px; margin-top: 0px;">

    2am on Saturday
</h4>
<script type="text/javascript">initPhotosUserPageTitle_div('16209134');</script>

这是Flickr上面一段代码。确实,它使得代码阅读起来结构不清晰了。Behavior应用之后,不需在元素上写明触发事件要执行的方法,比如
<a onclick="this.parentNode.removeChild(this)" href="#">
Click me to delete me
</a>
而变成了
<ul id="example">
<li>
<a href="/someurl">Click me to delete me</a>
</li>
</ul>
那么javascript如果找到这个a链接并加上onclick事件方法的呢?采用css selector

var myrules = {  
'#example li' : function(el){  
el.onclick = function(){   
this.parentNode.removeChild(this);  
} }};
Behaviour.register(myrules); 确实看起来,html清爽了,但是,却引入了其他的元素。ok,我们可以为每个控件定义id,其实也未尝不可,asp.net不也是web component开发的时候都定义id的么?可似乎又脱裤子放屁之嫌。在维护一个对某一组应用相同样式或响应
相同方法的html控件上应用behavior,有意义,起码不必每个上面都写上onclick之类的,但是对于更普遍的应用,每个html控件要做得事情是不同的啊。那个时候,不但用behavior代码量增加了,而且维护一个var myrules里的内容和去删除控件上的onclick其实工作量差不多。真正的应用可不是demo啊,列出来一排link写着remove me,然后执行一样的动作。
不过正如我上面说的,还是有一定的应用场景的,大家可以在有此需求的时候考虑,还有一Behaviour.js





Feedback

# re: Behaviour.js 真正的清洁了html?  回复  更多评论   

2006-01-18 01:00 by 拐拐龙底咚
今天发现了它的一个变种(?)degrader.js
http://blog.chunzi.org/archives/2005/11/oe_behaviourjs.html


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 29, comments - 3, trackbacks - 0, articles - 0

Copyright © BlueO2