2012-04-21 28 views
9

Tôi đang cố gắng để có được một tuyên bố điều kiện đơn giản để làm việc và gặp sự cố. Mã lỗi:JQuery/Javascript và việc sử dụng && toán tử

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

Nếu tôi xóa phần khác nếu một phần của mã, tôi nhận được cảnh báo. Nếu tôi cố gắng sử dụng & & hoặc || các toán tử nó sẽ thất bại. Tôi đã google, tôi không thể tìm thấy lý do tại sao nó không hoạt động. Tôi cũng đã thử:

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

cùng với các cách khác, chỉ trong trường hợp đó là một số điều cú pháp lạ.

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn :)

+1

theres một lỗ hổng trong logic của bạn. nếu cửa sổ chính xác là 321 thì sao? –

+0

Nếu điều đó xảy ra thì thế giới sẽ kết thúc, điều đó không quan trọng;) – mrEmpty

+0

bạn có chắc chắn cửa sổ của mình nhỏ hơn 480px không? Nếu không, bạn sẽ thấy không có cảnh báo, ngay cả với cú pháp chính xác (lựa chọn tốt mà được chỉ ra trong các câu trả lời) – Cameron

Trả lời

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

Đây là điều kiện bạn cần (http://jsfiddle.net/malet/wLrpt/).

tôi cũng sẽ xem xét đưa ra điều kiện của bạn rõ ràng hơn như vậy:

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

Tuyệt vời, cảm ơn bạn. Đó là làm việc một điều trị. – mrEmpty

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

Có hai vấn đề này. Đầu tiên đã được trả lời, thứ hai là "wwidth> 320" phải là "wwidth> = 320". Điều gì sẽ xảy ra nếu cửa sổ lớn hơn 480?

bạn cũng có thể thực hiện "giữa" như sau:

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, tôi thích 'giữa', tôi không biết điều đó. Nếu màn hình lớn hơn 480, tôi cũng có một vài câu lệnh nữa kiểm tra một vài kích thước khác, kết thúc bằng 'nếu nó ở trên 1024 làm điều này'. Đó là cách clunky của tôi thay đổi javascript được sử dụng trên trang web tùy thuộc vào thiết bị. – mrEmpty

+0

Tôi rất vui vì bạn đã học được điều gì đó. –

Các vấn đề liên quan