jQuery - 添加类后检查div是否没有类

时间:2014-03-23 15:26:47

标签: jquery addclass removeclass

我希望jquery检查div,如果它在添加类后没有某个类:

这是我的添加类代码:

$('#Test').each(function (e) {
    $(this).click(function () {
        $(this).addClass('Rotate');
    });

然后,我想检查#Test div是否没有.Rotate class:

$('#Test').not('.Rotate').mouseenter(function () {
        $('#Test').removeClass('Rotate');
    });

但这不起作用。

1 个答案:

答案 0 :(得分:1)

假设您使用的是课程而不是id s(文档中的ids must be unique),听起来就像您说要添加{{ 1}}在点击元素时对其进行分类,并在元素收到Rotate时将其删除。

委托处理可能是你最好的选择:

mouseenter

它实际上将事件挂钩在// Clicking on a .Test that isn't a .Rotate adds .Rotate $("body").on("click", ".Test:not(.Rotate)", function() { $(this).addClass("Rotate"); }); // mouseenter on a .Test.Rotate removes the .Rotate $("body").on("mouseenter", ".Test.Rotate", function() { $(this).removeClass("Rotate"); }); 元素上,但仅当事件通过与给定选择器匹配的元素时才触发它们。当您添加/删除元素或添加/删除用于确定是否挂钩事件的内容(如body类)时,这非常有用。由于测试是在事件发生时发生的,所以最初与选择器匹配的任何元素都没有(在我下面的例子中),这并不重要;稍后会有重要的事情。

完整示例:Live Copy

Rotate