*dope* nevermind..got it. just calling the fucntion directly ,...
On Jan 29, 11:01 am, Bhaarat Sharma <[EMAIL PROTECTED]> wrote: > Hi > > I have the following snippet to expand/collapse menu items and set the > cookie as well. > > function initMenu() { > $('#menu ul').hide(); > if ($.cookie('the_cookie')=='a'||$.cookie('the_cookie')=='b'|| > $.cookie('the_cookie')=='c'|| > $.cookie('the_cookie')=='d') > { > alert('came here with cookie: ' + $.cookie('the_cookie')); > $("a").filter("." + > $.cookie('the_cookie')).next().slideDown('normal'); > alert('did the sliding: ' + $("a").filter(".b").attr('name')); > } > > $('#menu li a').click( > function() { > $(this).click(function(){setCookie($(this).attr('class'));}); > alert('this isname: ' + $(this).attr('name')); > $(this).next().slideToggle('normal'); > } > ); > } > function setCookie(some) > { > $.cookie('the_cookie', some); > alert('cookie set ' + some); > } > $(document).ready(function() {initMenu();}); > > as you see. I am trying to set the cookie every time that user clicks > the menu item. However, the cookie is only being set the SECOND time > user clicks the menu item. > First click - menu item expands > Second click - cookie is set and then menu item collapse. > > Why is this? when I have the code inside the click. > > I thought maybe becuase i am doing this: > $(this).click(function(){setCookie($(this).attr('class'));}); > > so just wondering..will it be better if I can just assign a function > to $(this) rather than on 'click' > > Thanks