2012-04-21 12 views
9

Estoy tratando de obtener un enunciado condicional simple para funcionar y tener problemas. El código que falla:JQuery/Javascript y el uso de operadores &&

$(document).ready(function(){ 
    var wwidth = $(window).width(); 

    if (wwidth < 321) { 
     alert("I am 320 pixels wide, or less"); 
     window.scrollTo(0,0); 
    } else if (wwidth > 321) && (wwidth < 481) { 
     alert("I am between 320 and 480 pixels wide") 
    } 
}); 

Si elimino la parte else del código, recibo la alerta. Si trato de usar & & o || operadores fallará. Busqué en Google, no puedo encontrar un motivo por el que no funcione. También he intentado:

((wwidth > 321 && wwidth < 481)) 

junto con otras formas, por si acaso es una cosa de sintaxis extraña.

Cualquier ayuda sería muy apreciada. Gracias :)

+1

theres una brecha en su lógica. ¿y si la ventana tiene exactamente 321 de ancho? –

+0

Si eso sucede, el mundo se acaba, entonces no importa;) – mrEmpty

+0

¿estás seguro de que tu ventana tiene menos de 480px? De lo contrario, no verá ninguna alerta, incluso con la sintaxis correcta (buenas opciones para las que se señalan en las respuestas) – Cameron

Respuesta

13
((wwidth > 321) && (wwidth < 481)) 

Esta es la condición que necesita (http://jsfiddle.net/malet/wLrpt/).

Yo también consideraría hacer sus condiciones más clara de este modo:

if (wwidth <= 320) { 
    alert("I am 320 pixels wide, or less"); 
    window.scrollTo(0,0); 
} else if ((wwidth > 320) && (wwidth <= 480)) { 
    alert("I am between 320 and 480 pixels wide") 
} 
+0

Excelente, gracias. Eso está funcionando bien. – mrEmpty

2
if (wwidth > 321 && wwidth < 481) { 
//do something 
} 
0

Hay dos cuestiones. El primero ya ha sido respondido, el segundo es "ancho de banda> 320" que debería ser "ancho de vía = = 320". ¿Qué pasa si la ventana es más grande que 480?

también se puede poner en práctica "entre" de la siguiente manera:

Number.prototype.between = function(a, b) { 
    return this >= a && this <= b 
} 

$(document).ready(function(){ 
    var wwidth = $(window).width(); 
    if (wwidth < 321) { 
     alert("I am 320 pixels wide, or less"); 
     window.scrollTo(0,0); 
    } else if (wwidth.between(321,481)) 
     alert("I am between 320 and 480 pixels wide") 
    else alert("I am greater than 480 pixels wide."); 
}); 
+0

Ooh, me gusta 'entre', no estaba al tanto de eso. Si la pantalla es más grande que 480, bien, tengo un par de declaraciones más que verifican algunos tamaños más, que terminan en un "si está por encima de 1024 haga esto". Es mi manera torpe de cambiar el Javascript utilizado en el sitio dependiendo del dispositivo. – mrEmpty

+0

Me alegra que hayas aprendido algo. –

Cuestiones relacionadas