[Seaside] Call javascript function from subClass of SUComponent

Dario Trussardi dtrussardi at tiscali.it
Mon Oct 2 12:37:54 UTC 2006


Hi All,

i have one file named  utility.js with  this javascript function:

function tableruler() {
  if (document.getElementById && document.createTextNode) {
    var tables=document.getElementsByTagName('table');
    for (var i=0;i<tables.length;i++)
    {
      if(tables[i].className=='ruler') {
        var trs=tables[i].getElementsByTagName('tr');
        for(var j=0;j<trs.length;j++)
        {
          if(trs[j].parentNode.nodeName=='TBODY') {
            trs[j].onmouseover=function(){this.className='ruled';return false}
            trs[j].onmouseout=function(){this.className='';return false}
          }
        }
      }
    }
  }
}
window.onload=function(){tableruler();}


 This function mark the row of one table when onmouseover on the row.

When is call the function from html file esempio.html all work fine.

esempio.html is :

    <!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" lang="it">
<head>

 <title>Tabelle con onmouseover - Esempio JavaScript scaricato da HTML.it</title>
 
 <script type="text/javascript" src="utility.js"><!--// ajax utility //--></script>

<style type="text/css">
<!--
#demo tr.ruled {
  background:#9cf;
}
-->
</style>

</head>
<body >
<br /><br />
<div align="center">

Passa con il mouse sulla tabella<br><br>

<table id="demo" class="ruler" cellpadding="5" style="border:solid 1px #000">
<tr>
<td>Testo 1</td><td>Testo 2</td>
</tr>
<tr>
<td>Testo 3</td><td>Testo 4</td>
</tr>
<tr>
<td>Testo 5</td><td>Testo 6</td>
</tr>
</table>
</div>
<br /><br /><br /><br /><br /><br />
</body>
</html>


I'm interesting to do it from SUComponent subClass TabellaTest where i'have defined the method:

updateRoot: aHtmlRoot
 super updateRoot: aHtmlRoot.

     aHtmlRoot
      title: 'dtr';
      linkToStyle: (self resources addToPath: 'cursor.css').

     aHtmlRoot  linkToScript: (self resources addToPath: 'utility.js' ).

and where  the renderContentOn: t1 method is:

renderContentOn: t1 
 t1 heading: 'My friends' level: 1.

  t1 table id: 'demo';  class: 'ruler'; style: 'border:solid 5px #000'; attributeAt: #cellpadding put:'15';  with:[
          self renderDatabaseRowsOn: t1].
         
   t1 horizontalRule.
  
The rendering work fine but the selection row when onmouseover d'ont work.


What i'have wrong ?

Any pointers would be greatly appreciated!

Thanks!

Dario Trussardi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20061002/f99e8268/attachment.htm


More information about the Seaside mailing list