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 -~----------~----~----~----~------~----~------~--~---
