script.aculo.us的DomBuilder

[转]1.script.aculo.us的DomBuilder

script.aculo.us语法超简洁的Builder, 相比之下W3c的Dom Builder语法简直是噩梦。html片断不复杂时如果用JSTemplate有点大炮打蚊子,用script.aculo.us的Builder就够了。
Builder很有Ruby的风格,请看下面一句 : 

foo =  Builder.node('a', {href: " foo.jsp " },categorys[i].name)

第1个参数是element类型,第2个是可选的attribbute,第3个是节点内的子节点。
如果要换成W3c的Dom函数写法,善哉善哉。

下面这段更明显,直接照元素的页面顺序来生成对象,而不是像W3C Dom Builder很逻辑抽象的,先生成对象,然后append到父元素。

div  =  Builder.node('div',{className:linkDiv},[ 
                       Builder.node('a', {href:
" foo.jsp " }, categorys[i].name)  ]
         );

 

当然了,还是没有JS Template清晰,所以Builder只作为html片断非常短时使用。

阅读更多

script.aculo.us中的effects的使用问题,苦恼....

12-23

不知道这个问题是否是Ajax的范畴.感觉是.rn是这样的,我在一个网页中看到一个图片的连接效果,单击后很好,适合我做给学生们做课件.我就将该网页连接的css、js等相关文件都下了下来。然后将原来的绝对路径改为相对路径。结果怎么也不成功!!rn这个网页是:http://enews.xwhb.com/html/2008-12/22/content_41364.htmrn我说的效果,是这个网页的右侧区域的那个舰艇图片点击后的效果。rn该网页源代码中有这么一句: rnrn其中scriptaculous.js文件的代码是:rnrnvar Scriptaculous = rn Version: '1.5.1',rn require: function(libraryName) rn // inserting via DOM fails in Safari 2.0, so brute force approachrn document.write(' ');rn ,rn load: function() rn if((typeof Prototype=='undefined') ||rn parseFloat(Prototype.Version.split(".")[0] + "." +rn Prototype.Version.split(".")[1]) < 1.4)rn throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0");rn rn $A(document.getElementsByTagName("script")).findAll( function(s) rn return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))rn ).each( function(s) rn var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');rn var includes = s.src.match(/\?.*load=([a-z,]*)/);rn (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(rn function(include) Scriptaculous.require(path+include+'.js') );rn );rn rnrnrnScriptaculous.load();

没有更多推荐了,返回首页