分享

prototype.js简介

 冰红荼 2006-02-22

关键词prototype    javascript                                          

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.)

经过这两天的学习,我总结了一下Prototype的主要用法:

基本用法:以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.但是知道它是怎么工作的也很有用.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多