Python论坛  - 讨论区

标题:[python-chinese] shareplat中ajax_form.js求解

2007年03月08日 星期四 22:49

Brightman mr.brightman在gmail.com
星期四 三月 8 22:49:40 HKT 2007

Brightman дµÀ:
> ajax_form.js´úÂëÈçÏ£ºÎÒ²»´ó¶®ÄÇЩÊÇÀàÄÇЩÊÇÀà³ÉÔ±º¯Êý
>
> __data_handle = function(target, data){ //ÕâÊǶ¨ÒåÒ»¸öÀàô£¿»¹ÊǺ¯Êý
> var obj = target;
> var e = obj.form;
> //remove all error infos
> $('.error', e).remove();
> ............
> }
>
> AjaxForm = function(form, options){ //ÕâÊǶ¨ÒåÒ»¸öÀàô£¿»¹ÊǺ¯Êý
> this.options = options || {};
> this.form = $(form);
> this.hookajax();
> }
>
> Object.extend(AjaxForm.prototype, { //exten ¼Ì³Ð¸¸Ààô£¿
> setdata: function(objs){ //³ÉÔ±º¯Êý£¿
> $H(objs).each(function(k, v){
> $("[@name='$0']".template([k]), this.e).val(v);
> });
> return this;
> },
>
> hookajax: function(){
> .....................
> }
>
> });
>
>
> ÔÚÍøÉÏûÕÒµ½ºÏÊʵÄjavascript classµÄ½Ì³Ì,²»´ó¶®¹ÊÀ´Çë½Ì¡£Ð»Ð»£¡

-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070308/476aed1f/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月08日 星期四 23:07

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 8 23:07:39 HKT 2007

javascript 没有正式的"类"的说法,但是可以利用 function 来模拟类的一些简单行为。

a = function(){
   alert('b');
}
这种方式只是定义一个匿名函数,然后把它赋值给 a 这个变量。
js 中模拟类编程的一个重要方法是用 prototype 的方式扩展。

在 07-3-8,Brightman<mr.brightman在gmail.com> 写道:
>
>  Brightman 写道:
>  ajax_form.js代码如下:我不大懂那些是类那些是类成员函数
>
>  __data_handle = function(target, data){     //这是定 义一个类么?还是函数
>      var obj = target;
>      var e = obj.form;
>      //remove all error infos
>      $('.error', e).remove();
>  ............
>  }
>
>  AjaxForm = function(form, options){       //这是定义一 个类么?还是函数
>      this.options = options || {};
>      this.form = $(form);
>      this.hookajax();
>  }
>
>  Object.extend(AjaxForm.prototype, {          //exten 继承父类么?
>      setdata: function(objs){                 //成员 函数?
>          $H(objs).each(function(k, v){
>              $("[@name='$0']".template([k]), this.e).val(v);
>          });
>          return this;
>      },
>
>      hookajax: function(){
>  .....................
>      }
>
>  });
>
>
>  在网上没找到合适的javascript class的教程,不大懂故来请教。谢谢!
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月08日 星期四 23:33

Brightman mr.brightman在gmail.com
星期四 三月 8 23:33:15 HKT 2007

Object.extend(AjaxForm.prototype, {          //extend 继承父类么? Object不像是子类名
>      setdata: function(objs){                 //成员 函数?
>          $H(objs).each(function(k, v){
>              $("[@name='$0']".template([k]), this.e).val(v);
>          });
>          return this;
>      },
>
>      hookajax: function(){
>  .....................
>      }
>
>  });



Neil(木野狐) 写道:
> javascript 没有正式的"类"的说法,但是可以利用 function 来模拟类的一些简单行为。
>
> a = function(){
>    alert('b');
> }
> 这种方式只是定义一个匿名函数,然后把它赋值给 a 这个变量。
> js 中模拟类编程的一个重要方法是用 prototype 的方式扩展。
>
> 在 07-3-8,Brightman<mr.brightman在gmail.com> 写道:
>   
>>  Brightman 写道:
>>  ajax_form.js代码如下:我不大懂那些是类那些是类成员函数
>>
>>  __data_handle = function(target, data){     //这是定 义一个类么?还是函数
>>      var obj = target;
>>      var e = obj.form;
>>      //remove all error infos
>>      $('.error', e).remove();
>>  ............
>>  }
>>
>>  AjaxForm = function(form, options){       //这是定义一 个类么?还是函数
>>      this.options = options || {};
>>      this.form = $(form);
>>      this.hookajax();
>>  }
>>
>>  Object.extend(AjaxForm.prototype, {          //exten 继承父类么?
>>      setdata: function(objs){                 //成员 函数?
>>          $H(objs).each(function(k, v){
>>              $("[@name='$0']".template([k]), this.e).val(v);
>>          });
>>          return this;
>>      },
>>
>>      hookajax: function(){
>>  .....................
>>      }
>>
>>  });
>>
>>
>>  在网上没找到合适的javascript class的教程,不大懂故来请教。谢谢!
>>
>>
>> _______________________________________________
>> python-chinese
>> Post: send python-chinese在lists.python.cn
>> Subscribe: send subscribe to
>> python-chinese-request在lists.python.cn
>> Unsubscribe: send unsubscribe to
>> python-chinese-request在lists.python.cn
>> Detail Info:
>> http://python.cn/mailman/listinfo/python-chinese
>>
>>     
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese

-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070308/04ef6cfe/attachment-0001.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月08日 星期四 23:54

Neil(木野狐) chenrong2003在gmail.com
星期四 三月 8 23:54:41 HKT 2007

extend 不是关键字,只是一个普通的函数。你看 jBasicExt.js 中有 Object.extend 函数的定义:

/* basic functions  */
Object.extend = function(obj, prop){
    for(var i in prop) obj[i] = prop[i];
    return obj;
};

这个函数的作用是将 prop 对象中的所有属性复制到 obj 中,也就是扩展了 obj 的内容。

下面的写法,其实是个普通的对象语法。

// js 里可以这样定义对象:
var o = new Object();

// 然后可以给它赋属性:
o.a = "hello";
alert(o.a);
// 这种写法和上面一行是等价的:
alert(o['a']);

// 当然属性值也可以是匿名函数
o.f = function(){
    alert('test');
};

// 对象还有另一种定义方式,object literal. 大体相当于 python 的 dict.
var o2 = {
   "a": 123,
   "func1": function(x){
        alert(x);
    }
};

alert(o2['a']);
alert(o2.a);
alert(o2.func1);
alert(o2['func1']);

o2.func1('xyz');

这样你再看看原来那段代码是不是很好理解了。



在 07-3-8,Brightman<mr.brightman在gmail.com> 写道:
>
>  Object.extend(AjaxForm.prototype, { //extend 继承父类么? Object不像是子类名
> > setdata: function(objs){ //成员 函数?
> > $H(objs).each(function(k, v){
> > $("[@name='$0']".template([k]), this.e).val(v);
> > });
> > return this;
> > },
> >
> > hookajax: function(){
> > .....................
> > }
> >
> > });
>
>
>  Neil(木野狐) 写道:
>  javascript 没有正式的"类"的说法,但是可以利用 function 来模拟类的一些简单行为。
>
> a = function(){
>  alert('b');
> }
> 这种方式只是定义一个匿名函数,然后把它赋值给 a 这个变量。
> js 中模拟类编程的一个重要方法是用 prototype 的方式扩展。
>
> 在 07-3-8,Brightman<mr.brightman在gmail.com> 写道:
>
>
>  Brightman 写道:
>  ajax_form.js代码如下:我不大懂那些是类那些是类成员函数
>
>  __data_handle = function(target, data){ //这是定 义一个类么?还是函数
>  var obj = target;
>  var e = obj.form;
>  //remove all error infos
>  $('.error', e).remove();
>  ............
>  }
>
>  AjaxForm = function(form, options){ //这是定义一 个类么?还是函数
>  this.options = options || {};
>  this.form = $(form);
>  this.hookajax();
>  }
>
>  Object.extend(AjaxForm.prototype, { //exten 继承父类么?
>  setdata: function(objs){ //成员 函数?
>  $H(objs).each(function(k, v){
>  $("[@name='$0']".template([k]), this.e).val(v);
>  });
>  return this;
>  },
>
>  hookajax: function(){
>  .....................
>  }
>
>  });
>
>
>  在网上没找到合适的javascript class的教程,不大懂故来请教。谢谢!
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>
>  _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月09日 星期五 00:23

limodou limodou在gmail.com
星期五 三月 9 00:23:40 HKT 2007

On 3/8/07, Brightman <mr.brightman在gmail.com> wrote:
>
>  Brightman 写道:
>  ajax_form.js代码如下:我不大懂那些是类那些是类成员函数
>
>  __data_handle = function(target, data){     //这是定 义一个类么?还是函数
>      var obj = target;
>      var e = obj.form;
>      //remove all error infos
>      $('.error', e).remove();
>  ............
>  }

这是一个公共函数,用在AjaxForm和AjaxIFrame中,因为处理一样,所以公共出来了。

>
>  AjaxForm = function(form, options){       //这是定义一 个类么?还是函数
>      this.options = options || {};
>      this.form = $(form);
>      this.hookajax();
>  }

这是一个类,因为有this了。而且一般类的定义函数没有返回值。

>
>  Object.extend(AjaxForm.prototype, {          //exten 继承父类么?
>      setdata: function(objs){                 //成员 函数?
>          $H(objs).each(function(k, v){
>              $("[@name='$0']".template([k]), this.e).val(v);
>          });
>          return this;
>      },
>
>      hookajax: function(){
>  .....................
>      }
>
>  });
>

向类中扩展一些方法。

>
>  在网上没找到合适的javascript class的教程,不大懂故来请教。谢谢!
>
在最近的啄木鸟社区会课的第二部分我讲了一些关于openbookplatform的的结构,其中谈到了这个js代码。只不过没有ppt,只能听录音。

http://www.woodpecker.org.cn:9081/classes/classes2007/070303_qxg/cpug_2007_03_03_li_2.ogg

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号