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

底部的两个输入不能输入。

于 2012-09-27T22:02:29.187 回答
0

e.preventDefault(); 应该使用事件回调函数来保留你的默认事件,即表单提交。

在你的情况下,你应该为 div small 145px 执行一些操作

于 2012-09-27T22:03:19.497 回答