jQuery removeClass в меню при нажатии элемента - PullRequest
0 голосов
/ 09 ноября 2011

Хорошо, поэтому у меня есть эта функция, которая при нажатии на контакт добавляет класс для пользователя

 $(".contactlink").live("click",function(e){
            if(lastclicked == $(this).attr('href'))
            {
            return false;   
            }
            contactinfo = lastclicked.split('/');
            alert(lastclicked);

            lastclicked = $(this).attr('href');
            contactinfo = $(this).attr('href').split("/");
            $("#friend_"+contactinfo[2]).addClass('active');
            loadcontactinfo(contactinfo[2]);
            //alert( contactinfo[2] );
            return false;                                   
        }); 

Все работает нормально, но эта часть функции, похоже, не сохраняет себя в jquery.

contactinfo = lastclicked.split('/');
alert(lastclicked);

потому что, когда я последний раз щелкнул, он не предупреждает меня о том, какая ссылка href была последней.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Вы должны убедиться, что вы объявляете переменные с var в правильной области видимости.Попробуйте что-то вроде:

// declare lastclicked before created your click function
var lastclicked = '';
$(".contactlink").live("click",function(e){
    if(lastclicked == $(this).attr('href')) {
       return false;   
    }
    alert(lastclicked);
    // use var for local variables
    var contactinfo = $(this).attr('href').split("/");
    lastclicked = $(this).attr('href');

    $("#friend_"+contactinfo[2]).addClass('active');
    loadcontactinfo(contactinfo[2]);
    //alert( contactinfo[2] );
    return false;                                   
}); 

Для упрощенного примера см. this jsfiddle

0 голосов
/ 09 ноября 2011

Вы определили lastclicked как var перед вашей функцией?

...