NB this message contains html that is not intended to be formatted!

Some background: About a month ago, I started learning ruby on rails, 
thru which I learnt about MVC frameworks, etc.  Figuring I should 
explore my options, and following a little inner voice that said 
"Wouldn't you like to do this in perl?" I'm now learning Mason (but 
not, at this point, catalyst).  All is good and I am happy EXCEPT:

For my first exercise, I figured I would take a simple RonR app I did 
and rewrite it using Mason.  I've hit what seems to me a strange glitch 
involving CSS.  First, the *minor* symptoms: I have a div which is a 
horizontal menu bar, the original code looked like this:

<center><h3 class="menu">
<span onclick="[some ruby js helper]">
Main Menu</span> | 
<span onclick="[another ruby js helper]>
Search List</span></h3>     
</center></div>

So the menu bar = " Main Menu | Search List ".  Class "menu" here has a 
":hover" defined to highlight, and using the code above, span sufficed 
as a separator.  When I moved this into the mason version, however, 
hovering over *either* span highlit both of them (as did adding the css 
class to the individual span), so I had to change this to:

<div class="menubar" id="mmdiv">
<h3><span id="mmspan" onmouseover="$('mmspan').style.color='#ff0066'" 
    onmouseout="$('mmspan').style.color='#ffffff'" onclick="mainmenu(<& 
mmenu1.comp &>)">Main Menu</span>
 | <span id="slspan" onmouseover="$('slspan').style.color='#ff0066'" 
    onmouseout="$('slspan').style.color='#ffffff'" onclick="mainmenu
([unfinished])">Search List</span>
</h3></div> 

Which is irritating and mysterious, but I can live with it.

Another potential symptom is that .class:hover attributes were ignored 
unless they were part of a tag type:

.mini { font-size: small; color: #bbbbbb; margin: 10px 10px 10px 
10px; }
p.mini:hover { color: #ffff00; }

If I use ".mini:hover" instead of "p.mini:hover", this style is 
ignored.  Meaning I will have to repeat this for every tag type!

But the *MAJOR* symptom seems to be this:  mmenu1.comp (from above) 
looks like this

<p>Add Subject</p>

mainmenu() calls a dropdown menu, and the parameter is the innerHTML 
for that menu.  As is, this works fine.  However, if I change 
mmenu1.comp slightly:

<p class="whatever">Add Subject</p>

A *very* *very* strange thing happens: the contents of mmenu1.comp 
replace the div containing the menu bar (a *different* div) *before* 
any "onclick" has occurred, so on load the menubar looks like this:

Add Subject

instead of "Main Menu | Search List"

I am so flabbergasted by this I have at least half a dozen times 
reloaded the page making *only* the above change to mmenu1.comp, and 
this difference is the same everytime.  *How is it even possible* that 
the contents of a parameter to a js function in an onclick 

<span id="mmspan" onclick="mainmenu(<& mmenu1.comp &>)">Main Menu</
span>

would replace the entire div containing the span when the page is 
loaded, just because I added

class="somestyle"

to mmenu1.comp????????????

Thanks in advance, MK





------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to