I am using the latest 1.5.1.1 stable prototype, and a click observer added through $$(''a.citation'').invoke to all of the citations on this page: <http://oll.libertyfund.org/index.php? option=com_staticxt&staticfile=advanced_search.php> The page works perfectly in Safari 2 and Firefox 2, but stubbornly navigates to the target of the link when clicked in Safari 1.3.9. I added a return false to the end of my function just to see if that might help, even though I know it''s inside an anonymous function. Does anyone have any bright ideas how I might fix this? //sample link <a href="http://oll.libertyfund.org/340/44332/604638" title="show citation" class="citation" id="cit_604638"><img src="static/citation.gif" width="80" height="14" alt="" /></a> //script <script type="text/javascript" charset="utf-8"> $$(''a.citation'').invoke(''observe'',''click'',function(evt){ me = Event.element(evt).parentNode; uri = me.href.substr(27).split(''/''); new Ajax.Updater(me.parentNode, ''http://oll.libertyfund.org/ajax_citation.php'',{parameters: { id: uri[0], chapter: uri[1], para: uri[2] }, insertion: Insertion.Bottom}); Event.stop(evt); return false; }); </script> Thanks in advance, Walter --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Forgot to add, you have to actually search for something in order to see them... On Aug 23, 2007, at 7:29 PM, Walter Lee Davis wrote:> > <http://oll.libertyfund.org/index.php? > option=com_staticxt&staticfile=advanced_search.php> >--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Martin Bialasinski
2007-Aug-24 00:08 UTC
Re: Event.stop() and Safari 1.3.9 don''t get along
On 8/24/07, Walter Lee Davis <waltd-HQgmohHLjDZWk0Htik3J/w@public.gmane.org> wrote:> The page works perfectly in Safari 2 and Firefox 2, but stubbornly > navigates to the target of the link when clicked in Safari 1.3.9.My Event.stop() function (Prototype 1.4 based): stop: function(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); if (isKHtml) { var element = Event.element(event); var oldhref = element.href; element.href = ''javascript:void 0''; (function(){ element.href = oldhref; }).delay(1); } } else { event.returnValue = false; event.cancelBubble = true; } }, You will need to adapt it, obviously. .delay() is a setTimeout wrapper and isKHtml is true for Safari. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
In trying to use this, I ended up setting an alert on the result of the Event.element call: var el = Event.element(event); alert (el); What I get back is object[IMG], when I am expecting an A. My outer loop is looking for $$(''a.citation''), and feeding the result into the anonymous function generator. Why then is the target of the click event the image rather than the a? How can I trap this and work around it? Thanks, Walter On Aug 23, 2007, at 8:08 PM, Martin Bialasinski wrote:> > On 8/24/07, Walter Lee Davis <waltd-HQgmohHLjDZWk0Htik3J/w@public.gmane.org> wrote: >> The page works perfectly in Safari 2 and Firefox 2, but stubbornly >> navigates to the target of the link when clicked in Safari 1.3.9. > > My Event.stop() function (Prototype 1.4 based): > > stop: function(event) { > if (event.preventDefault) { > event.preventDefault(); > event.stopPropagation(); > if (isKHtml) { > var element = Event.element(event); > var oldhref = element.href; > element.href = ''javascript:void 0''; > (function(){ element.href = oldhref; }).delay(1); > } > } else { > event.returnValue = false; > event.cancelBubble = true; > } > }, > > You will need to adapt it, obviously. .delay() is a setTimeout wrapper > and isKHtml is true for Safari. > > >--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
I have this limping along as follows: var cit_this = function(evt){ Event.stop(evt); var me = Event.findElement(evt,''a''); var uri = me.href.substr(27).split(''/''); if(Prototype.Browser.WebKit == true){ me.href="javascript:;";} new Ajax.Updater(me.parentNode, ''http://oll.libertyfund.org/ajax_citation.php'',{parameters: { id: uri[0], chapter: uri[1], para: uri[2] }, insertion: Insertion.Bottom}); }; $$(''a.citation'').invoke(''observe'',''click'',cit_this); It seems incredibly hacky, but it works and doesn''t complain in FireBug or Safari''s JS Console. If anyone has any further illumination they can shed, I would appreciate it. Thanks, Walter On Aug 23, 2007, at 8:28 PM, Walter Lee Davis wrote:> > In trying to use this, I ended up setting an alert on the result of the > Event.element call: > > var el = Event.element(event); > alert (el); > > What I get back is object[IMG], when I am expecting an A. > > My outer loop is looking for $$(''a.citation''), and feeding the result > into the anonymous function generator. Why then is the target of the > click event the image rather than the a? > > How can I trap this and work around it? > > Thanks, > > Walter > > On Aug 23, 2007, at 8:08 PM, Martin Bialasinski wrote: > >> >> On 8/24/07, Walter Lee Davis <waltd-HQgmohHLjDZWk0Htik3J/w@public.gmane.org> wrote: >>> The page works perfectly in Safari 2 and Firefox 2, but stubbornly >>> navigates to the target of the link when clicked in Safari 1.3.9. >> >> My Event.stop() function (Prototype 1.4 based): >> >> stop: function(event) { >> if (event.preventDefault) { >> event.preventDefault(); >> event.stopPropagation(); >> if (isKHtml) { >> var element = Event.element(event); >> var oldhref = element.href; >> element.href = ''javascript:void 0''; >> (function(){ element.href = oldhref; }).delay(1); >> } >> } else { >> event.returnValue = false; >> event.cancelBubble = true; >> } >> }, >> >> You will need to adapt it, obviously. .delay() is a setTimeout wrapper >> and isKHtml is true for Safari. >> >>> > > > >--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---