如果条件不能在Javascript / Jquery中工作

时间:2013-09-16 05:36:02

标签: javascript jquery html jquery-mobile

b.addEventListener('touchend', function (event) {
    event.preventDefault();

    end_x_position = (event.changedTouches[0].pageX + 'px');
    end_y_position = event.changedTouches[0].pageY + 'px';

    if ((posX < end_x_position) && (end_x_position < totalWidth)) //THIS PART DOESNOT RUN EVEN IF CONDITION IS TRUE
    {
        console.log("iff");
        alert("iff");
        b.style.left = intial_x_position;
        b.style.top = intial_y_position;
    } else {
        console.log("else");

        b.style.left = end_x_position - xbox;
        b.style.top = end_y_position - ybox;
    }

}, false);

2 个答案:

答案 0 :(得分:1)

if((posX<end_x_position)&&(end_x_position<totalWidth)) //THIS PART DOESNOT RUN EVEN IF CONDITION IS TRUE

例如,这就像尝试这样:

3 < "hello world"

检查你的第一行:

end_x_position=(event.changedTouches[0].pageX + 'px');
end_y_position=event.changedTouches[0].pageY + 'px';

整个end_x_position将包含400px之类的内容。这是一个字符串,您无法将StringNumber进行比较。

而不是那样,你应该这样做:

end_x_position= parseInt(event.changedTouches[0].pageX);
end_y_position= parseInt(event.changedTouches[0].pageY);

您的if语句将按预期运行,因为您将NumberNumber进行比较。

答案 1 :(得分:0)

你用这条线打了它:

end_x_position=(event.changedTouches[0].pageX + 'px');
end_y_position=event.changedTouches[0].pageY + 'px';

取消px或执行此操作:

if((posX< parseInt(end_x_position))&&( parseInt(end_x_position) <totalWidth))