单击项时菜单上的jQuery removeClass

单击项时菜单上的jQuery removeClass,jquery,hyperlink,href,removeclass,Jquery,Hyperlink,Href,Removeclass,好的,我有一个函数,当点击一个联系人时,它会向用户添加一个类 $(".contactlink").live("click",function(e){ if(lastclicked == $(this).attr('href')) { return false; } contactinfo = lastclicked.split('/'); ale

好的,我有一个函数,当点击一个联系人时,它会向用户添加一个类

 $(".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);

因为当我执行lastclicked时,它不会提醒我上次单击的href链接是什么。

您是否在函数之前将lastclicked定义为变量?

您应该确保在正确的范围内使用变量声明变量。尝试以下方法:

// 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;                                   
}); 

有关简化示例,请参见

向用户添加类并将其自身保存到jquery意味着什么?lastclicked将在中第一次被取消定义。您从未实际使用此语句中指定的值:contactinfo=lastclicked.split'/';-几行之后,您分配contactinfo=$this.attr'href.split/;你实际使用的就是这个值。