使用单击事件删除类

时间:2016-05-20 21:55:04

标签: javascript jquery

JQuery没有在click事件中删除类,所以我添加了一个事件委托,但现在代码无效。

我正在尝试向活动菜单链接添加一个类,并从非活动菜单链接中删除一个类。以下是该网站的链接:http://wildcanyongamesstats.com/?q=corporate/wahoo-fitness

我不确定如何从非活动菜单链接中删除该类。有人可以帮忙吗?

不删除名为“underline_active”的类的原文:

$(".c_men_1").click(function(event){
    event.preventDefault();
    $(standings).show();
    $(triathlon).hide();
    $(geocache).hide();
    $(challenges).hide();
    $(heat).hide();
    $(creek2peak).hide();

    localStorage.setItem('showStandings', 'true');
    localStorage.removeItem('showTriathlon');
    localStorage.removeItem('showGeocache');
    localStorage.removeItem('showChallenges');
    localStorage.removeItem('showHeat');
    localStorage.removeItem('showCreek2peak');
    $(".c_men_2, .c_men_3, .c_men_4, .c_men_5, .c_men_6").removeClass("underline-active");
    $(".c_men_1").addClass("underline_active");
});

使用委派事件处理程序更新的代码无效。链接不再可点击或互动。这是代码:

$( ".c_men_1" ).on( "click", function( event ) {
    event.preventDefault();
    $(standings).show();
    $(triathlon).hide();
    $(geocache).hide();
    $(challenges).hide();
    $(heat).hide();
    $(creek2peak).hide();

    localStorage.setItem('showStandings', 'true');
    localStorage.removeItem('showTriathlon');
    localStorage.removeItem('showGeocache');
    localStorage.removeItem('showChallenges');
    localStorage.removeItem('showHeat');
    localStorage.removeItem('showCreek2peak');
    $(".c_men_2, .c_men_3, .c_men_4, .c_men_5, .c_men_6").removeClass("underline-active");
    $(".c_men_1").addClass("underline_active");
});

以下是JavaScript文件的链接:http://wildcanyongamesstats.com/sites/all/themes/wcg1/js/script.js?o7ecdx

2 个答案:

答案 0 :(得分:3)

动态创建“.c_men_1”吗?如果是这样,这将确保处理程序可重复使用:

default=x,

“body”可以是.c_men_1的任何父级。

答案 1 :(得分:1)

看起来要添加的类是“underline_active”,但要删除的类是“下划线激活”(请注意使用连字符与下划线。)在第一个示例中,尝试更改removeClass()行到:

$(".c_men_2, .c_men_3, .c_men_4, .c_men_5, .c_men_6").removeClass("underline_active");