[jQuery] how to assign function to $(this)

[jQuery] how to assign function to $(this)


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