That particular aspect of Javascript syntax is basically a mistake from its original design. Different parsers may be more lenient. (There's no good reason for the syntax for object constants { x : y, ... } to forbid reserved words on the left side of the colons, because there's no ambiguity as to the meaning of the construct.
That said, I don't know exactly what the story here is. On Sun, Sep 27, 2009 at 8:09 AM, indre1 <ind...@gmail.com> wrote: > > Ok, thanks. Should've noticed the highlighted word in editor. > > But if it's javascript, then why doesn't it throw errors with Firefox? > > On Sep 27, 3:55 pm, Mike McNally <emmecin...@gmail.com> wrote: >> You can always quote the word "do" on the left side of the colon: >> >> { "do": "something", x: y } >> >> It's not a bug, it's part of the Javascript language. >> >> >> >> On Sun, Sep 27, 2009 at 7:49 AM, indre1 <ind...@gmail.com> wrote: >> >> > Tested, it can be bypassed with ajax(): >> >> > $.ajax({ >> > type: "GET", >> > url: "profile.php", >> > data: "do=addfriend&id=2" >> > }); >> >> > But is the get and "do" thing a bug? >> >> > On Sep 27, 3:37 pm, indre1 <ind...@gmail.com> wrote: >> >> After 3 DAYS, I finally figured it out: >> >> $.get('profile.php', { do: 'addfriend', id: userId } >> >> >> The problem is, that the word "do" is reserved or something, thus you >> >> can't use it in get, ajax and probably elsewhere. test.php? >> >> do=something will never work from jQuery then, or how should I escape >> >> it? >> >> Is this a bug or just something everyone has to know? Strangely, on FF >> >> it all worked. >> >> >> $.get('profile.php', { action: 'addfriend', id: userId } works >> >> perfectly. >> >> >> On Sep 27, 1:27 pm, indre1 <ind...@gmail.com> wrote: >> >> >> > Well, the problem still seems to be in the get() function. For >> >> > example, IE gives the following error: Object doesn't support this >> >> > property or method >> >> > With: >> >> > (function($) { >> >> > $.fn.followUser = function(userId) { >> >> > this.fadeOut(250, function(){ >> >> > $.get('profile.php', { do: "addfriend", id: userId }, >> >> > function >> >> > (data){ >> >> > return this.html('<p>Follower >> >> > added</p>').fadeIn(250); >> >> > }); >> >> > }); >> >> > } >> >> >> > })(jQuery); >> >> >> > If I remove the whole $.get() part, the error is gone. Chrome will >> >> > start fading out too. The code will then look like: >> >> > (function($) { >> >> > $.fn.followUser = function(userId) { >> >> > this.fadeOut(250, function(){ >> >> >> > }); >> >> > } >> >> >> > })(jQuery); >> >> >> > I even tried replace the get() with ajax(), but ran into the same >> >> > problem. >> >> >> > Btw, thanks for the attr('rel') suggestion. This is something I was >> >> > also looking for, but couldn't figure it out :) The html is now: >> >> > <script type="text/Javascript"> >> >> > $(function(){ >> >> > $('div#followButton a').click(function(){ >> >> > $('div#followButton a').followUser($(this).attr('rel')); >> >> > });}); >> >> >> > </script> >> >> >> > ... >> >> >> > <div id="followButton"> >> >> > <a rel="2">test1</a> >> >> > </div> >> >> >> > On Sep 26, 6:48 pm, Matt Quackenbush <quackfu...@gmail.com> wrote: >> >> >> > > @ Mike - Thanks for making me take a closer look at the original >> >> > > code. I >> >> > > get it now. My bad. >> >> >> > > /me crawls back into his cave to hibernate some more >> >> -- >> Turtle, turtle, on the ground, >> Pink and shiny, turn around. -- Turtle, turtle, on the ground, Pink and shiny, turn around.