j查询调整大小时移动元素

jQuery moving elements on resize

本文关键字:移动 元素 小时 查询 调整      更新时间:2023-09-26

我正在努力发现这个jQuery代码的问题所在。我正在尝试将几个元素从一个div 移动到另一个div。取决于屏幕的宽度。该代码适用于页面加载,但在我调整大小时无效。

var domWidth = $(window).width();
//Move around page elements
function moveElements() {
    var pageTitle = $('.page-title'),
        actionAlert = $('.action-alert'),
        banner = $("#banner>.container"),
        header = $("header>.container"),
        mainContent = $(".main-content");
    if (domWidth < 1024) {
        pageTitle.prependTo(mainContent);
        actionAlert.appendTo(header);
    } else {
        pageTitle.appendTo(banner);
        actionAlert.prependTo(banner);
    } 
}
$(document).ready(function() {
    moveElements();   
    $(window).resize(function() {
        moveElements();
    });
});
 //Move around page elements
function moveElements() {
  var domWidth = $(window).width();
  var pageTitle = $('.page-title'),
    actionAlert = $('.action-alert'),
    banner = $("#banner >.container"),
    header = $("#header >.container"),
    mainContent = $(".main-content");
  if (domWidth < 1024) {
    pageTitle.prependTo(mainContent);
    actionAlert.appendTo(header);
  } else {
    pageTitle.appendTo(banner);
    actionAlert.prependTo(banner);
  } 
}
$(document).ready(function() {
moveElements();   
$(window).resize(function() {
    moveElements();
});
});

对您的代码进行了一些认真的编辑。
代码中的错误是

  1. 最主要的是你把var domWidth =$(window).width();放在函数之外。它应该在函数内,因为每次函数工作时都需要找到宽度。
  2. 您错过了在header = $("header>.container")中输入 #

为了检查,我做了一个工作演示 https://jsfiddle.net/8m0d1462/ (为了检查,将宽度减小到400)

您可以从div 更改侦听器触发事件。

$(window).trigger('resize')

检查此内容以获取更多想法