У меня есть функция mouseenter, которая превращает выбранный div в красный цвет и 1 непрозрачность. У меня есть класс «полный», который делает именно это, но когда я добавляю этот класс внутри mouseenter, div не меняет цвет. Вместо этого, если я добавлю красный цвет и изменим непрозрачность внутри mouseenter с помощью this.style.color и this.style.opacity, то, похоже, это сработает. Почему мой вопрос?addClass() не работает в mouseenter()?
JQuery (НЕ РАБОТАЕТ):
$('.content').mouseenter(function() {
$(".content").each(function (i) {
if (this.style.color != "#F7F7F7") {
this.style.color = "#F7F7F7";
this.style.opacity = "0.5";
}
});
this.addClass('full');
});
JQuery (РАБОТА):
$('.content').mouseenter(function() {
$(".content").each(function (i) {
if (this.style.color != "#F7F7F7") {
this.style.color = "#F7F7F7";
this.style.opacity = "0.5";
}
});
this.style.color = "red";
this.style.opacity = "1";
});
CSS:
.full
{
color: red;
opacity: 1;
}
Да, вы правы. Не могли бы вы объяснить разницу между 'this' и' $ (this) '? – user2441391
'this' относится к элементу DOM,' $ (this) '- элемент DOM, завернутый в объект jquery, добавив к нему jquery-методы. 'addClass()' - это метод jquery, поэтому вам нужно использовать объект jquery. –
'this' означает (в данном случае) узел DOM. '$ (this)' возвращает объект JQuery на основе узла, на который ссылается 'this'. Объект jquery имеет все методы, к которым имеет доступ функция $. У нормального узла dom нет. –