当我调整浏览器的大小时,除insertafter()和appendto()之外,函数中的所有内容均有效,但如果我调整窗口的速度非常慢(有时!),它们将起作用,但是我需要它在击中后立即起作用调整大小标记。我该怎么办?
我有以下代码:
responsiveMenu: function () {
if ((window).matchMedia("(min-width: 767.98px)").matches) {
$("#headerSearch").insertAfter(".search-field--webb");
$(".list-item").removeClass("without-before-element").addClass("d-flex");
$("a.d-block").removeClass("p-2");
}else {
$("#headerSearch").appendTo(".search-field--mobile");
$(".hamburgermenu-button").addClass("collapsed");
$('.extended-navigation').removeClass('show');
$(".list-item").addClass("without-before-element").removeClass("d-flex");
$("a.d-block").not('.watchlist-mobile').addClass("p-2");
}
}
我用以下代码运行它:
$(window).on('resize', function(){
if((window).matchMedia("(min-width: 766.98px)").matches){
Blabla.responsiveMenu();
};
});
但是,正如我所说的,除非insertAfter()和appendTo()能够正常工作,否则响应菜单函数中的所有内容都会立即起作用,除非有时我调整大小的速度很慢。还有另一种方法可以使DOM元素以一定的宽度切换吗?根据屏幕的大小,这是我从一个地方移到另一个地方的一个元素。