Javascript jQuery无法将类添加到动态添加的内容中

Javascript jQuery无法将类添加到动态添加的内容中,javascript,jquery,css,ajax,Javascript,Jquery,Css,Ajax,我知道,如果动态添加内容,则必须使用on()为父元素使用事件处理程序。但是当我在动态添加的内容上使用addClass时,该类立即消失 以下是HTML的相关部分(只是为了确保我没有遗漏打字错误): 因此,如果我单击其中一个动态创建的元素,它会显示文本(例如“All”,它不是从php获取的,但是您知道了),但不会永久添加该类 为了确保我没有错过任何真正愚蠢的东西,这里是CSS: a.training_management_categories_list_a { text-decoration

我知道,如果动态添加内容,则必须使用on()为父元素使用事件处理程序。但是当我在动态添加的内容上使用addClass时,该类立即消失

以下是HTML的相关部分(只是为了确保我没有遗漏打字错误):

因此,如果我单击其中一个动态创建的元素,它会显示文本(例如“All”,它不是从php获取的,但是您知道了),但不会永久添加该类

为了确保我没有错过任何真正愚蠢的东西,这里是CSS:

a.training_management_categories_list_a {
    text-decoration:none;
    display:block;
    background-image:url("img/icons/folder.png");
    background-size:16px 16px;
    padding-left:25px;
    background-repeat:no-repeat;
    font-size:9pt;
    background-position:4px 2px;
    height:20px;
    padding-top:2px;
}

a.training_management_categories_list_a:hover {
    background-color:#aaa;
}

a#training_management_categories_list_a_all {
    font-weight:bold;
}

a.categories_selected {
    background-color:#aaa !important;
}
我是不是遗漏了什么


编辑:使用jquery-1.10.2.js

您的代码还可以,我在一个JSFIDLE中尝试过:

所发生的事情是,您在
a.categories\u selected
中设置的颜色与之前(在悬停中)的颜色相同,我将其更改为黄色
背景色:黄色!重要的因此您意识到它正在工作。尝试单击该链接,您将看到它如何在弹出警报之前更改背景颜色


更新:仅适用于寻求答案的人。锚元素重新加载页面,以便将样式设置为初始样式。您使用的是ajax,因此不希望重新加载页面,因此应该向函数传递
e
参数,并在
onClick
函数上使用
e.preventDefault()
,以避免锚定标记的默认行为。

您是否尝试过检查元素以查看类是否存在?这通常有助于我确定哪里出了问题。可能是另一个类正在重写您的类的属性…?

可能这对您有效,请更改此行:

$(this).addClass('categories_selected'); // DOESN'T WORK
对于这一点:

$(this).parent().find('.training_management_categories_list_a').addClass('categories_selected');

我不知道为什么,但我以前见过这个问题,并用这种方法解决了。

您必须阻止默认操作,否则页面将被重新加载…因此,要么从事件处理程序
返回false
,要么调用
event.preventDefault()
在收到handler中的
事件
参数后,我认为
:hover
样式会妨碍您。@ArunPJohny Oh man。。。是的,你当然是对的。我几乎要发疯了。谢谢为什么你不把这个作为一个答案发布呢?哈哈,我错过了,锚元素重新加载了页面,哈哈只是更新了我的答案,让人们知道问题出在哪里。不,即使在你的小提琴中,问题仍然存在。单击“确定”按钮后,黄色再次被删除。解决方案在Arun P Johny的评论中。
a.training_management_categories_list_a {
    text-decoration:none;
    display:block;
    background-image:url("img/icons/folder.png");
    background-size:16px 16px;
    padding-left:25px;
    background-repeat:no-repeat;
    font-size:9pt;
    background-position:4px 2px;
    height:20px;
    padding-top:2px;
}

a.training_management_categories_list_a:hover {
    background-color:#aaa;
}

a#training_management_categories_list_a_all {
    font-weight:bold;
}

a.categories_selected {
    background-color:#aaa !important;
}
$(this).addClass('categories_selected'); // DOESN'T WORK
$(this).parent().find('.training_management_categories_list_a').addClass('categories_selected');