BlogJava 首页 新随笔 联系 聚合 管理
  37 Posts :: 64 Stories :: 21 Comments :: 0 Trackbacks

prototype.js是一个很强大的Javascript函数库,它可以让你很轻松的使用一些特效,实现AJAX的功能.虽然prototype.js是为了Ruby On Rails开发的,它的纯Javascript的性质也使得它很容易用在其他的网络程序中.可惜的是,Prototype.js还没有强大的文档解释,尽管它的代码非常有条理,但是也给初学者造成了一定的麻烦.作者在README里说:

Prototype is embarrassingly lacking in documentation. (The source code should be fairly easy to comprehend; I’m committed to using a clean style with meaningful identifiers. But I know that only goes so far.)

基本用法:以Element Class为例,prototype给每个主要的分类都分成了一个Class,使用起来很方便,要产生特定的效果的话只要用new Class.function(<argument>)就可以了.比如:
<DIV id="div1"><a href="#" onclick="new Element.toggle(''div2'')">Click Me</a></DIV>
<DIV id="div2">Hello!</DIV>

当点击Click Me的时候,div2就会交替隐藏或显示.注意,你可以给toggle加上无限个parameter,比如Element.toggle(''div2'',''div3'',''div4'')...

下面是每个重要的类和函数的解释:

 

prototype 1.2.0 的函数简介
函数名 解释 举例
Element.toggle 交替隐藏或显示 "Element.toggle(''div1'',''div2'')
Element.hide 隐藏 "Element.hide(''div1'',''div2'')
Element.show 显示 "Element.show(''div1'',''div2'')
Element.remove 删除 "Element.remove(''div1'',''div2'')
Element.getHeight 取得高度 "Element.getHeight(''div1'')
Toggle.display 和Element.toggle相同 "Toggle.display(''div1'',''div2'')
Insertion.Before 在DIV前插入文字 "Insertion.Before(''div1'',''my content'')
Insertion.After 在DIV后插入文字 "Insertion.After(''div1'',''my content'')
Insertion.Top 在DIV里最前插入文字 "Insertion.Top(''div1'',''this is a text'')
Insertion.Bottom 在DIV里最后插入文字 "Insertion.Bottom(''div1'',''this is a text'')
PeriodicalExecuter 以给定频率调用一段JavaScript "PeridicalExecutor(test, 1)"这里test是Javascript的函数,1是频率(1秒).
$ 取得一个DIV, 相当于getElementById() $(''div1'')
Field.clear 清空一个输入框 "Field.clear(''textfield1'')
Field.focus 把 焦点集中在输入框上 "Field.focus(''select1'')
Field.present 判断内容是否为空 "alert(Field.present(''textfield1''))"
Field.select 选择输入框的内容 "Field.select(''textfield1'')"
Field.activate 把 焦点集中在输入框上并选择输入框的内容 "Field.activate(''textfield1'')"
Form.serialize 把表格内容转化成string
Form.getElements 取得表格内容为数组形式
Form.disable disable表格所有内容 Form.disable(''form1'') (这个好象不work)
Form.focusFirstElement 把焦点集中在表格第一个元素上 Form.focusFirstElement(''form1'')
Form.reset Reset表格 Form.reset(''form1'')
Form.Element.getValue 取得表格输入框的值 Form.Element.getValue(''text1'')
Form.Element.serialize    把表格中输入框内容转化成string Form.Element.serialize(''text1'')
$F 等同于Form.Element.getValue() $F(''text1'')
Effect.Highlight 高亮特效. Effect.Highlight(''text1'')
Effect.Fade 褪色特效
Effect.Scale 放大缩小(百分比)

Effect.Scale(''text1'', 200)
这里200 = 200%, 即两倍

Effect.Squish 消失特效.文字缩小后消失 Effect.Squish(''text1'')
Effect.Puff 消失特效.文字放大后消失 Effect.Puff(''text1'')
Effect.Appear 出现特效
Effect.ContentZoom ZOOM特效.
Ajax.Request 传送Ajax请求给服务器 Ajax.Request(''http://server/s.php'')
Ajax.Updater 传送Ajax请求给服务器并用答复的结果更新指定的Container Ajax.Updater(''text1'',''http://server/s.php'')

 

 

Ajax的函数实际上还有一个可选参数,就是options.在未指明的情况下,Ajax使用的是''POST''发送请求,而且是异步执行,如果想要改用''GET''和同步,就可以用Ajax.Request(''http://server/s.php'',''get'','''',''a=1&b=2'')来执行.

在Rails中Ajax的函数被封装成Ruby的函数,所以不必直接采用Ajax.Request,Ajax.Updater.但是知道它是怎么工作的也很有用.

posted on 2009-12-14 17:23 xiachang88 阅读(193) 评论(0)  编辑  收藏

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


网站导航: