jquery $(window).resize立即触发并忽略if / else语句?

时间:2013-12-12 10:59:16

标签: javascript jquery

有一个奇怪的bug atm。我的窗口调整大小工作正常,直到我在if和else语句的中间添加了else if语句。它导致我的函数立即触发到if语句,即使参数不正确。我觉得这是一个愚蠢的语法错误 - 任何人都可以检查这个吗?

$(window).resize(function () {
    var width = $(window).width;
    var img = $('#e2-1 img');

    if (1 < width < 1460) {
        $(img).mapster('resize',650,null,null);
    } else if (1461 < width < 1715) {
        $(img).mapster('resize',750,null,null);
    } else {
        $(img).mapster('resize',930,null,null);
    }
});

它在(文件).ready中,如果重要的话。 .mapster来自我拥有的图像映射库,它将调整我的图像映射及其所有的坐标。

感谢您的帮助!如果它不仅仅是一个愚蠢的语法错误,我会做一个小提琴

2 个答案:

答案 0 :(得分:2)

尝试重写

if (1 < width < 1460) {

作为

if (width>1 && width<1460) {

我认为这可能是一个优先问题(1&lt; width评估为1,小于1460)。

答案 1 :(得分:1)

我认为你的if语句是错误的。这种方式是不可能的。 你必须这样做

if((a < x) && (x < b))

$(window).resize(function () {
    var width = $(window).width;
    var img = $('#e2-1 img');

    if ((1 < width) && (width < 1460)) {
        $(img).mapster('resize',650,null,null);
    } else if ((1461 < width) && (width < 1715)) {
        $(img).mapster('resize',750,null,null);
    } else {
        $(img).mapster('resize',930,null,null);
    }
});