Hi,
No, that code probably doesn't do what you mean it to do -- your code
hooking the event:
> img.observe('mouseover', Songlist.mouseover);
...doesn't preserve "this" (as we discussed in another thread).
Consequently when this code gets called:
> mouseover: function() {
> this.src = 'anotherimage.gif';
> }
..."this" will be the window object, not an instance of Songlist.
It's really worth stopping coding for a moment and reading up on how
"this" works in JavaScript. I've pointed you to this blog entry
before:
http://blog.niftysnippets.org/2008/04/you-must-remember-this.html
Additionally, Flanagan's book will pay you back in time savings pretty
much any time you spend reading it:
http://www.oreilly.com/catalog/jscript5/
http://www.amazon.com/dp/0596101996
In terms of the actual problem with the above code, as with last time,
you want to use bindAsEventListener:
http://www.prototypejs.org/api/function/bindAsEventListener
Hope this helps,
--
T.J. Crowder
tj / crowder software / com
On May 18, 12:31 pm, "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> wrote:
> OK, I really tried hard before I posted the above message, but sitting
> on the toilet I found the mistake.
> The code must look like that, than it works:
>
> var Songlist = {
> initialize: function() {
> img = document.createElement('img');
> [...]
> img.observe('mouseover', Songlist.mouseover);
> $('body').insert(img);
> }
> mouseover: function() {
> this.src = 'anotherimage.gif';
> }
>
> }
>
> Songlist.initialize();
>
> On 18 Mai, 13:25, "[EMAIL PROTECTED]"
>
> <[EMAIL PROTECTED]> wrote:
> > Hello,
>
> > I habe a problem with the following code (shortened):
>
> > var Songlist = {
> > initialize: function() {
> > img = document.createElement('img');
> > [...]
> > img.observe('mouseover', this.mouseover);
> > $('body').insert(img);
> > }
> > mouseover: function() {
> > this.src = 'anotherimage.gif';
> > }
>
> > }
>
> > Songlist.initialize();
>
> > Passing the image with my mouse I always get the error: "handler has
> > no properties"!
> > I would be happy if you gave me a tip, where what causes this error!
>
> > M. Hoffmann
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---