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相乘,这样做行不通!这是应该的,但所有这些都不起作用。你能再检查一下吗?我想我明白了,你应该把这个问题作为另一个问题发出去。我现在不知道如何解决这个问题,工作越来越忙了。发布新问题将吸引更多的人。您可以提供最新的小提琴来演示问题。