0

次のコードに問題があります:

function KeyCheck(e) {

            // ... Some Code

    for (var i = 0; i < length; i++) { 
        width = elements[i].offsetWidth;

        if(width > 245) {
            e.preventDefault();
        }
    }   
}

ご覧のとおり、ループがありますが、245px未満の要素のみがイベントを機能させ、245pxを超える要素は機能させないようにします。

問題-if'が245px未満の幅の要素に出会うと、ループが停止し、関数も終了すると思います...

ループを継続し、幅が245px未満の要素のみがイベントを機能させるようにするにはどうすればよいですか?

4

3 に答える 3

4

preventDefaultで定義されていない限り、そのままのコードはループの終わりまでループを続けますe

于 2012-09-27T21:37:56.127 に答える
1

これはあなたがやろうとしていることですか?: http: //jsfiddle.net/D2xhz/

$("input").keydown(function(e){
    if ($(this).width() > 245)
        e.preventDefault();
});​

下の2つの入力は入力できません。

于 2012-09-27T22:02:29.187 に答える
0

e.preventDefault(); イベントコールバック関数で使用して、デフォルトのイベント、つまりフォームの送信を取り消す必要があります。

私はあなたの場合、divsmall145pxに対して何らかのアクションを実行する必要があります

于 2012-09-27T22:03:19.497 に答える