jQuery 调整大小时移动元素

jQuery moving elements on resize

我正在努力找出这段 jQuery 代码的问题所在。我正在尝试将几个元素从一个 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();
    });

});

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

$(window).trigger('resize')

检查 this 以获得更多想法

 //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();
});

});

Some Serious edits are made to your code .
the errors in your code are

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

For the sake of checking I made a working demo in https://jsfiddle.net/8m0d1462/ (reduced the width to 400 for the sake of checking)