Posted on 2005-11-24 23:10
BlueO2 阅读(948)
评论(1) 编辑 收藏 所属分类:
AJAX
http://bennolan.com/behaviour/ 为了避免在html中引入过多的script tag,尤其现在富客户端应用很火的时候,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