Hello, I am new to Ruby and I am currently creating a webpage which lists bug *stats* information for various development teams. Each team is represented on the page with an image. When a team''s link is clicked, I want 2 things to happen: 1) Javascript needs to call the displayLogo() method to handle visual effects 2) Ruby needs to call the loadCustomLinks() method to display a link Current Behavior: When a team link is clicked, the javascript effects appear and then disappear, followed by the display of the team''s custom link. Expected Behavior: When a team link is clicked, I want the javascript effects to STAY active after the custom link is displayed. I expect that my issue is more related to Javascript than to Ruby, but I also want to make sure that I am using good Ruby programming practices... Any help is appreciated, JT <code> # home_controller.rb------------------------------------------------------------ class HomeController < ApplicationController layout ''mainLayout'' def index end def loadCustomLinks @team_links = "<a href=''#'' style=''color:white''> Special Team Link #1 </a>" end end # javascript (embedded)--------------------------------------------------------- function displayLogo(name) { // De-select last selected item document.images[lastName].src = "/images/" + lastName + ".png"; // Highlight team icon document.images[name].src = "/images/" + name + "_hover.png"; // Activate team banner document.images["logo"].src = "/images/logo_" + name + ".png"; // Re-activate siteBanner (TEMP FIX) document.images["siteBanner"].src = "/images/logo_dashboard.png"; // Set lastName lastName = name; } // end displayLogo() #layout.rhtml ------------------------------------------------------------------ <%= link_to(image_tag(''/images/banner_team1.png'', :id => ''bannerImgAlign'', :name => ''banner_team1'', :style => ''border:0'', :onclick => ''displayLogo("banner_team1")''), :action => ''loadCustomLinks'') %> </code> -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 2 Apr 2008, at 17:34, Jt Taylor wrote:> > Hello, > > I am new to Ruby and I am currently creating a webpage which lists bug > *stats* information for various development teams. Each team is > represented on the page with an image. > When a team''s link is clicked, I want 2 things to happen: > > 1) Javascript needs to call the displayLogo() method to handle visual > effects > 2) Ruby needs to call the loadCustomLinks() method to display a link > > Current Behavior: When a team link is clicked, the javascript effects > appear > and then disappear, followed by the display of the > team''s > custom link. > > Expected Behavior: When a team link is clicked, I want the javascript > effects > to STAY active after the custom link is displayed. > > I expect that my issue is more related to Javascript than to Ruby, > but I > also want to make sure that I am using good Ruby programming > practices... >It is just the way things works: the browser calls your javascript function and since it doesn''t return an appropriate value it proceeds onto the default action (load the page specified). Since the page loads any temporary javascript changes you made to the page are blown away. If you''re want to do things like this you can drop the javascript completely. Just make your loadCustomLinks view display the right images. Fred> Any help is appreciated, > > JT > > <code> > # > home_controller > .rb------------------------------------------------------------ > > class HomeController < ApplicationController > layout ''mainLayout'' > > def index > end > > def loadCustomLinks > @team_links = "<a href=''#'' style=''color:white''> Special Team Link > #1 > </a>" > end > > end > > # javascript > (embedded)--------------------------------------------------------- > > function displayLogo(name) > { > // De-select last selected item > document.images[lastName].src = "/images/" + lastName + ".png"; > > // Highlight team icon > document.images[name].src = "/images/" + name + "_hover.png"; > > // Activate team banner > document.images["logo"].src = "/images/logo_" + name + ".png"; > > // Re-activate siteBanner (TEMP FIX) > document.images["siteBanner"].src = "/images/logo_dashboard.png"; > > // Set lastName > lastName = name; > > } // end displayLogo() > > #layout.rhtml > ------------------------------------------------------------------ > > <%= link_to(image_tag(''/images/banner_team1.png'', > :id => ''bannerImgAlign'', :name => ''banner_team1'', > :style => ''border:0'', :onclick => ''displayLogo("banner_team1")''), > :action => ''loadCustomLinks'') %> > > </code> > -- > Posted via http://www.ruby-forum.com/. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick Cheung wrote:> On 2 Apr 2008, at 17:34, Jt Taylor wrote: > >> 2) Ruby needs to call the loadCustomLinks() method to display a link >> >> I expect that my issue is more related to Javascript than to Ruby, >> but I >> also want to make sure that I am using good Ruby programming >> practices... >> > It is just the way things works: the browser calls your javascript > function and since it doesn''t return an appropriate value it proceeds > onto the default action (load the page specified). Since the page > loads any temporary javascript changes you made to the page are blown > away. > If you''re want to do things like this you can drop the javascript > completely. Just make your loadCustomLinks view display the right > images. > > FredOk, that makes sense... However you say an appropriate value is not returned, and I thought using ''return false;'' would essentially ignore the redirect action, which it doesn''t... Also, I see 2 ways I can proceed with your suggestion: 1) Invoke the javascript method(s) through my loadCustomLinks method 2) Translate the javascript code to ruby code and place it in loadCustomLinks ...I don''t think there is a straight-forward way to do #1 without adding plugins I would rather do #2 as it seems a better alternative. Could you help me get started with how to write the code for this method? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 2 Apr 2008, at 18:58, Jt Taylor wrote:> > Frederick Cheung wrote: >> On 2 Apr 2008, at 17:34, Jt Taylor wrote: >> >>> 2) Ruby needs to call the loadCustomLinks() method to display a link >>> >>> I expect that my issue is more related to Javascript than to Ruby, >>> but I >>> also want to make sure that I am using good Ruby programming >>> practices... >>> >> It is just the way things works: the browser calls your javascript >> function and since it doesn''t return an appropriate value it proceeds >> onto the default action (load the page specified). Since the page >> loads any temporary javascript changes you made to the page are blown >> away. >> If you''re want to do things like this you can drop the javascript >> completely. Just make your loadCustomLinks view display the right >> images. >> >> Fred > > Ok, that makes sense... > > However you say an appropriate value is not returned, and I thought > using ''return false;'' would essentially ignore the redirect action, > which it doesn''t...It will but you''d have to say onclick="displayLogo(...); return false" or "return displayLogo(...)" and have displayLogo return false> Also, I see 2 ways I can proceed with your suggestion: > > 1) Invoke the javascript method(s) through my loadCustomLinks method > 2) Translate the javascript code to ruby code and place it in > loadCustomLinks > > ...I don''t think there is a straight-forward way to do #1 without > adding > pluginsWell you could do 1, but honestly I don''t see the point> I would rather do #2 as it seems a better alternative. Could you > help me > get started with how to write the code for this method?Well your link will need to pass through the parameter used. Then in your layout/view it''s just a case of using that parameter (probably assigned to an instance variable first) to make all those links to the various images. Fred> > -- > Posted via http://www.ruby-forum.com/. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---