ПРИМЕЧАНИЕ : Прежде всего важно убедиться, что у нас нет случая XY Проблема здесь. То есть, если вы хотите добавить различные стили к элементу при наведении и удалить их при наведении мыши, то, возможно, лучше использовать псевдокласс :hover
.
.category[class*='image-']:hover {
/* Insert hover styles here */
}
Если .isplaying
выполняет больше, чем базовое c моделирование, тогда использование JS в порядке. Однако, если это просто стилизация, :hover
может быть лучшим выбором.
Двигаемся дальше ...
Ваш код эквивалентен следующему:
$(".category.image-1, .category.image-2, .category.image-3").hover(
function () {
$(this).addClass("isplaying");
},
function () {
$(this).removeClass("isplaying");
}
);
Если вы действительно хотите сохранить эффекты наведения на элементы, которые имеют .category
класс и имеют класс image-$NUMBER
, тогда вы можете использовать селектор атрибута для атрибута class
. А именно, селектор с подстановочными знаками [attr*=value]
.
Таким образом, селектор, такой как .category[class*="image-"]
, будет соответствовать любому числу, связанному с .image-
классом.
$(".category[class*='image-']").hover(
function () {
$(this).addClass("isplaying");
},
function () {
$(this).removeClass("isplaying");
}
);
Есть несколько вещей, которые нужно знать о селекторе [attr*=value]
. А именно, она будет соответствовать этой строке , где бы она ни находилась. Таким образом, селектор [class*="image-"]
будет соответствовать любому из следующих элементов:
<div class="image-1"></div>
<div class="image-"></div>
<div class="some-other-image-1"></div>
<div class="image-something-else"></div>