Javascript 编写这个嵌套jQuery命令的正确性如何?

Javascript 编写这个嵌套jQuery命令的正确性如何?,javascript,jquery,jquery-masonry,gridsplitter,Javascript,Jquery,Jquery Masonry,Gridsplitter,我需要像这样的东西: function Splitter() { if ($(window).width() < 350) OR ($('#right-area').width() < 600) { $('.grid-item').css("width", "100%") } if ($(window).width() < 800) OR ($('#right-area').width() < 800) { $('.

我需要像这样的东西:

function Splitter() {
    if ($(window).width() < 350) OR ($('#right-area').width() < 600) {
        $('.grid-item').css("width", "100%")
    }
    if ($(window).width() < 800) OR ($('#right-area').width() < 800) {
        $('.grid-item').css("width", "50%")
    }
    else {
        $('.grid-item').css("width", "33.3333%")
    }
}
这样写怎么正确?如果我将OR替换为| |,它也不起作用。

您应该尝试:

function Splitter() {
    if (($(window).width() < 350) || ($('#right-area').width() < 600)) {
        $('.grid-item').css("width", "100%")
    }
    if (($(window).width() < 800) || ($('#right-area').width() < 800)) {
        $('.grid-item').css("width", "50%")
    } else {
        $('.grid-item').css("width", "33.3333%")
    }
}
我以为您忘记了,或者在使用if时,在语句中,所有相应的条件都必须用一组括号括起来

考虑以下几点:

if (a) || (b)   // invalid
if (a || b)     // valid
if ((a) || (b)) // valid
另外,我认为你的逻辑有点错误

比如说$window.width是200

第一个条件为true,因此$.grid项设置为宽度:100%

第二个if也是true,因此$.grid项设置为width:50%

在任何情况下,$'.grid item'.csswidth,100%激发,并且不会立即被$'.grid item'.csswidth,50%覆盖

我相信这可能更符合您的需求:

function Splitter() {
    if ($(window).width() < 350 || $('#right-area').width() < 600) {
        $('.grid-item').css("width", "100%")
    }
    else if ($(window).width() < 800 || $('#right-area').width() < 800) {
        $('.grid-item').css("width", "50%")
    }
    else {
        $('.grid-item').css("width", "33.3333%")
    }
}

我建议你用另一种方法。您可以尝试与函数回调一起使用:

var banner=$banner消息 banner.css'width',=>{ const windowWidth=$window.width; const rightAreaWidth=$“右区域”。宽度; 返回窗口宽度<350 | |右区域宽度<600?'100%':窗口宽度<800 | |右区域宽度<800?'50%:'33%'; };
不知道你的目标是什么,很难说清楚什么是正确的。然而,我想第二个if应该是else if。如果没有它,第一个if将始终被第二个if覆盖,因为没有第一个if为true而第二个if为false的条件。和| |而不是奥姆。它不起作用/括号也不正确。您要么需要将整个条件集封装在一组括号中,要么像这样展开单个条件:if$window.width<350 | |$'right-area'。width<600,对于这两个if。。。块。你指的是哪个括号?if必须将其所有条件包装在一组括号中。但是,您的if语句如下所示:if a | | b,这是无效的。如果a | | | b或a | | | b,任务是缩小此命令:函数拆分器{if$'rechts.width<600{$'.grid item.csswidth,100%}如果$'rechts.width.width<800{$'.grid item.csswidth,50%}如果$window.width<800,33.3333%}{$'.grid item'.csswidth,50%}如果$window.width<350{$'.grid item'.csswidth,100%}这里的问题是,命令在某些情况下相互矛盾。从逻辑上讲,这仍然没有意义。对于$window.width或$right-area.width,没有可能的值,其中第一个条件不会被第二个条件覆盖。那么您将如何编写它?啊,很好!这确实有帮助。但仍然存在一个问题:如果窗口大小不正确der 600px,网格项的宽度为100%,但只要窗口大小不低于350px,网格项的宽度应为50%。是否可以添加一个»!重要«?代码按照您的建议执行。如果窗口宽度在350和800之间,则将设置为50%,忽略$'right-area'。宽度部分。我的页面被拆分为两部分,并带有一个resiz可使用jQuery拆分器。右侧是一个砌体图像网格库。如果窗口大小小于800px,则»右部分«在»左部分«下垂直排列。使用您的代码,一切正常。如果我调整拆分器位置,图像排列正确。但是:如果我将窗口大小调整为800px,则图像宽度为100%,但是在这种情况下,它们应该是50%。在窗口大小低于800px但图像保持100%宽度的情况下,$right-area'的宽度是多少?您的条件将保持宽度:如果小于600,则保持100%。如果窗口大小低于800px,则右侧区域将与窗口大小处于相同的宽度。您知道如何解决此问题吗?$window.width命令应该比$'right-area'.width命令更重要。