jquery e.preventDefault停止循环

时间:2012-09-27 21:32:18

标签: javascript jquery html css events

我遇到以下代码问题:

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的元素才能使事件发挥作用?

3 个答案:

答案 0 :(得分:4)

代码按原样将继续循环,直到循环结束,除非preventDefault上未定义e

答案 1 :(得分:1)

这是你要做的吗?:http://jsfiddle.net/D2xhz/

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

无法输入底部的两个输入。

答案 2 :(得分:0)

e.preventDefault();应该在事件回调函数中使用你的默认事件,即表格提交。

我的情况你应该为div小145px执行一些动作