我有以下JS设置背景类。但是,是否可以删除先前的集合类?
我无法将它们全部删除,因为它包含其他类,所以只是在鼠标悬停功能上设置的内容,或者如果不可能删除通配符类?
所有设置的类都以* -bean-bags结束,所以也许我们可以做到这一点,但猜测不那么灵活。
预计会:
有人有什么想法吗?
$('.ty-menu__submenu-list li').on("mouseover", function () {
var menuBackground = $(this).attr("data-background");
//console.log(menuBackground);
$("div.ty-menu__submenu.ty-menu__submenu-to-right").removeClass (function (index, css) {
return (css.match (/\b-bean-bags\S+/g) || []).join(' ');
});
$("div.ty-menu__submenu.ty-menu__submenu-to-right").addClass(menuBackground);
});
答案 0 :(得分:1)
将类存储在自定义属性中,如下所示:
$('.ty-menu__submenu-list li').on("mouseover", function () {
//Get the names of the new class
var menuNewBackground = $(this).attr("data-background");
//Get a reference to the element with the classes.
elm = $("div.ty-menu__submenu.ty-menu__submenu-to-right");
//Get the name of the old class
var menuOldBackground = elm.attr("data-background-old");
//First remove the old, add the new, and save the name of the new,
//so that it can be used to remove it later.
elm.removeClass(menuOldBackground)
.addClass(menuNewBackground)
.attr("data-background-old", menuNewBackground);
});
答案 1 :(得分:0)
在将类添加到父div的同时,将相同的值添加到父div的data-prev-class
(或任何您想要调用它)属性。有了它在两个地方,您将能够以更加变化的方式访问它。