我希望jquery检查div,如果它在添加类后没有某个类:
这是我的添加类代码:
$('#Test').each(function (e) {
$(this).click(function () {
$(this).addClass('Rotate');
});
然后,我想检查#Test div是否没有.Rotate class:
$('#Test').not('.Rotate').mouseenter(function () {
$('#Test').removeClass('Rotate');
});
但这不起作用。
答案 0 :(得分:1)
假设您使用的是课程而不是id
s(文档中的id
s 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