Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Resize函数Resize不执行';需要时不要触发_Javascript_Jquery_Css - Fatal编程技术网

Javascript Resize函数Resize不执行';需要时不要触发

Javascript Resize函数Resize不执行';需要时不要触发,javascript,jquery,css,Javascript,Jquery,Css,不能让它工作 如果窗口>800,则应具有6个红色背景的图像 如果窗口小于800,则应具有4个蓝色背景的图像 应在调整大小和加载时工作。我错过了什么 var $container = $(container); $(window).on("resize", function () { $('.items > .item', $container).each(function (i) { if ($(window).width()

不能让它工作

  • 如果窗口>800,则应具有6个红色背景的图像

  • 如果窗口小于800,则应具有4个蓝色背景的图像

应在调整大小和加载时工作。我错过了什么

    var $container = $(container);

    $(window).on("resize", function () {
        $('.items > .item', $container).each(function (i) {

            if ($(window).width() > 800) {
                if (i % 6 == 0) {
                    $(this).nextAll().andSelf().slice(0, 6).wrapAll('<div class="wrap fadeIn"></div>');
                }
                $(".grid-container").removeClass('four');
                $(".grid-container").addClass('six');
            }

            if ($(window).width() < 800) {
                if (i % 4 == 0) {
                    $(this).nextAll().andSelf().slice(0, 4).wrapAll('<div class="wrap fadeIn"></div>');
                }
                $(".grid-container").removeClass('six');
                $(".grid-container").addClass('four');
            }
        })
    }).trigger('resize');
var$container=$(container);
$(窗口)。打开(“调整大小”,函数(){
$('.items>.item',$container)。每个(函数(i){
如果($(窗口).width()>800){
如果(i%6==0){
$(this.nextAll().andSelf().slice(0,6.wrapAll)(“”);
}
$(“.grid container”).removeClass('four');
$(“.grid container”).addClass('six');
}
如果($(窗口).width()<800){
如果(i%4==0){
$(this.nextAll().andSelf().slice(0,4.wrapAll)(“”);
}
$(“.grid container”).removeClass('six');
$(“.grid container”).addClass('four');
}
})
}).trigger('resize');

演示:

第一次通过,它匹配了许多项:

$('.items > .item', $container)
但是,第一次运行会更改DOM,使其不再匹配任何内容。您将项目包装在
div
元素中,这样
.items
就不再有任何直接的
.item
子元素


您的处理程序会开火,但不会在任何东西上循环。

我添加了一个整体div,以便更容易地将项目作为目标

你有

'.items > .item'
我把它改成了

'.items .item'
由于使用div包装项目,>选择器不再工作

如果您希望您的代码与您编写的代码相同,那么 我只更新了选择器

在这个版本中,我将窗口宽度的检查移出,这样更有效


.andSelf
已被弃用,请使用
.addBack()
@Karl AndréGagnon谢谢,但它仍然不能正常工作。不确定为什么在调整页面大小时不立即更改。作为建议,您应该将窗口宽度检查移到每个函数之外。这样,每次调整大小调用只检查一次,而不是每次调整大小调用每次检查一项。我也不知道你为什么会在最后触发resize。如果需要立即运行此代码,请将其放入函数中,并在控制台中的doc readyAny error上调用它?F12@Huangism谢谢,但还是没有运气,现在也给我一个错误!你能再检查一下吗?哦,谢谢你发现了!不错。你有解决办法吗?因为我被这件事缠住了非常感谢你!我被卡住了!!!!我只是想要一个好的代码,不确定我的代码是否足够好。你认为呢?最后一个问题是你的代码,除了我检查了窗口的宽度。现在还可以,好的代码来自经验。没必要大喊大叫谢谢你,伙计,但是你能检查一下html吗?它将所有div相乘,这样做行不通!这是应该的,但所有这些都不起作用。你能再检查一下吗?我想我明白了,你应该把这个问题作为另一个问题发出去。我现在不知道如何解决这个问题,工作越来越忙了。发布新问题将吸引更多的人。您可以提供最新的小提琴来演示问题。