Hi,

Unfortunately you can't subclass Element, that's a limitation of the
current implementation of HTMLElement in various browsers.

Unfortunately, there's nothing we can do about that.

Note that there's a similar limitation for native objects (IE won't
allow you to subclass Array, String, etc).

If you need to add methods to elements, use Element.addMethods (http://
prototypejs.org/api/element/addmethods).

Best,

Tobie

On Jan 19, 12:53 pm, flavious <[EMAIL PROTECTED]> wrote:
> I'm trying to inherit from prototype's Element by doing so:
>
> ------------------- CODE ------------------------
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
> <html xmlns="http://www.w3.org/1999/xhtml";>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> charset=iso-8859-1" />
> <script language="javascript" type="text/javascript" src="../
> prototype.js"></script>
> <style type="text/css">
> div.window {
> -moz-border-radius: 15px 15px 15px 15px;
> border: 2px solid black;}
>
> div.window div.win_head {
> background: #006699 url(box.png);
> color: white;
> font-size: 14px;
> font-weight: bold;
> font-family: Verdana, Arial, Helvetica, sans-serif;
> font-variant: small-caps;
> -moz-border-radius: 12px 12px 0px 0px;
> padding: 1px 0px 0px 5px;
> min-height: 23px;
> text-align: center;
> cursor: default;
> vertical-align: middle;
> overflow: auto;}
>
> div.window div.win_content {
> padding: 3px;}
>
> div.window div.win_statusline {
> background: #DDD;
> bottom: 0px;
> -moz-border-radius: 0px 0px 12px 12px;
> overflow: hidden;
> padding: 0px 0px 0px 5px;}
>
> div.window div.win_statusline td.resizegrip {
> background:red;
> width: 16px;
> cursor: se-resize;}
>
> div.window div.win_statusline td.win_status {}
>
> </style>
> <title>Inheritation in Prototype 1.6.0</title>
> <script type="text/javascript" language="javascript">
> Event.observe(window,'load',main);
>
> var GuiWindow = Class.create(Element,{
>         initialize:function($super,id) {
>                 $super('div',{class:'window',id:'window_'+id});
>                 this.id = id;
>                 this.win_status = new Element('td',
> {width:'100%',align:'left',class:'win_status',id:'win_status_'+id}).update( 
> 'status');
>                 this.win_resizegrip = new Element('td',
> {class:'resizegrip',id:'win_resizegrip_'+id}).update('R');
>                 this.row = new Element('td');
>                 this.table = new Element('table',{width:'100%'});
>                 this.win_statusline = new Element('div',
> {class:'win_statusline',id:'win_statusline_'+id});
>                 this.win_head = new Element('div',
> {class:'win_head',id:'win_head_'+id}).update('title');
>                 this.win_content = new Element('div',
> {class:'win_content',id:'win_content_'+id}).update('content');
>
>                 row.insert(win_status);
>                 row.insert(win_resizegrip);
>                 table.insert(row);
>                 win_statusline.insert(table);
>                 this.insert(win_head);
>                 this.insert(win_content);
>                 this.insert(win_statusline);
>                 this.hide();
>         }
>
> });
>
> function main(ev) {
>         var mywin = new GuiWindow('test');
>         document.body.appendChild(mywin);
>         mywin.show();}
>
> </script>
> </head>
> <body></body>
> </html>
>
> ------------------ END CODE -----------------
>
> bug I'm getting the following two errors:
>
> Error: parent.subclasses has no properties
> Source File:http://localhost/prototype.js
> Line: 61
>
> Error: GuiWindow is not a constructor
> Source File:http://localhost/_dev/
> Line: 72
>
> I'm using prototype 1.6.0 and the way of doing it like described in
> the manual:http://www.prototypejs.org/learn/class-inheritance(ie,
> the "new, preferred syntax").
>
> The browser I'm testing on is firefox 2.0.0.11
>
> Otherwise, great framework!
>
> Thank you
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to