[Seaside] Use of onMouseOver: and onMouseOut: in Seaside 2.8x

Gerhard Obermann obi068 at gmail.com
Fri Nov 7 08:37:02 UTC 2008


Hi!

You could try something like this!
You will need an extra CSS class for your rows!

     self session addLoadScript: (html selector
              add: 'tr.effect';
              do: [ :each |
                        each element on: 'mouseover' do:
'$(event.target).up(''tr'').addClassName(''highlight'')'.
                       each element on: 'mouseout' do:
'$(event.target).up(''tr'').removeClassName(''highlight'')']).

cheers
Gerhard

On Fri, Nov 7, 2008 at 7:55 AM, Richard E. Flower <rickf at ca-flower.com>wrote:

> On Nov 6, 2008, at 1:11 AM, Sebastian Sastre wrote:
>
>
>> Hi Richard,
>>
>> that will be rendered as javascript so you can't expect a server side halt
>> for
>> code that runs in DOM unless a callback is envolved. Unfortunately there
>> is not
>> Firebug code halts yet to mimic our debugging style. I miss that when
>> javascripting.
>>
>> You can use this to check in firebug's console if your code executes under
>> your
>> condition:
>>
>>        SUScript new
>>                add: (SULogger new log: 'The mouse is over!');
>>                add: (your javascript serius code here);
>>                yourself
>>
>> Usage of onClick, onMouseOver, etc are considered the "vile way" to do it.
>> Instead prefer observe(). Details here:
>> http://www.prototypejs.org/api/event/observe
>>
>
> Sebastian-
>
> I don't suppose you've got an example using the above mentioned observe()
> code in Prototype
> do you?  Is this what is used by Scriptaculous' SUElement?  I saw a
> reference to 'observe'
> in there but wasn't sure.. I've just spent the last hour or so looking thru
> the old email
> archives for this list and saw some tidbits but no concrete examples..  I
> also looked at the test
> code for Scriptaculous but nothing similar to what I want to do, which is
> to change the css for
> an id when the mouse goes over the row in a table...
>
> I saw a reference in an email you wrote this past August talking about
> using :
>
> ========================
>
>> From Seaside you access that with anElement>>on: anEventString do:
>>
> aHandlerObject
> With prototype you can even use your own custom events like this: anElement
> fire: 'mouse:enter'
> ========================
>
> However, I'm not sure about the context in which to use the above..  An
> example would
> be great!
>
> Currently my row rendering code looks something like :
>
> renderRowNumber: index item: row on: html
>
>        html tableRow id: 'row' , index asString;
>                class: (self classForRowNumber: index);
>                script: (self componentScriptOn: html);
>                 onClick: (html evaluator
>                        callback: [:aScript | self
> adjustRowColorsUsingIndex: index onScript: aScript];
>                         return: false);
>                with: [columns
>                                do: [:ea | self
>                                                renderColumn: ea
>                                                row: row
>                                                on: html]]
>
> componentScriptOn: html
>
>        ^(Scriptaculous.SUScript new
>                add: (Scriptaculous.SUEvent new
>                        observe: html scriptaculous document
>                        on: 'mouseover'
>                        do: (Scriptaculous.SULogger new log: 'The mouse is
> over!')
>                        ); yourself;
>        yourself).
>
> ====================================================
> When I execute this with Firefox (and Firebug) I get the following error in
> the console window:
>
> Event.observe is not a function
>  onLoad()
>  onLoad(load)
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20081107/bfb38a0e/attachment.htm


More information about the seaside mailing list