2

要素が「ホバーされた」と見なされるかどうかを確認するために、次のチェックがあります。

state === 'hover'あるべきではないときに要素が設定されているのを見ているので、私は非常に混乱しています。

このalertメッセージは、true と評価されたばかりの式が (論理的に考えれば) すべきではないことを示しているため、さらに混乱を招きます。

if( (ig.gui.cursor.pos.x >= element.pos.x) 
    && (ig.gui.cursor.pos.x <= element.pos.x + element.size.x)
    && (ig.gui.cursor.pos.y >= element.pos.y) 
    && (ig.gui.cursor.pos.y <= element.pos.y + element.size.y) 
    && !element.disabled ) {

    state = 'hover';

    alert(

        'This statement evaluates to true: '

        + ig.gui.cursor.pos.x
        + '>='
        + element.pos.x
        + '&&'
        + ig.gui.cursor.pos.x
        + '<='
        + element.pos.x
        + '+'
        + element.size.x
        + '&&'

        + ig.gui.cursor.pos.y
        + '>='
        + element.pos.y
        + '&&'
        + ig.gui.cursor.pos.y
        + '<='
        + element.pos.y
        + '+'
        + element.size.y
        + '&&'

        + ( !element.disabled )

    );

}

上記のコードを実行すると、次のalertようなメッセージが表示されます。

警告メッセージ

580 <= 60 + 48確かに、 が に評価されることに誰もが同意できFALSEますよね?

それでも、アラートはまだ呼び出されていました...

4

1 に答える 1

6

element.pos.x文字列( "60")です。それ(および比較の他のすべての文字列)を数値に戻す必要があります。

于 2012-12-20T02:31:28.127 に答える