加载时在对象上调用jQuery方法?

时间:2014-08-06 21:02:00

标签: jquery function

我正在尝试以与this question中描述的非常相似的形式创建功能。我想通过动态添加(或删除)类来以不完整的形式标记输入。但是,在该问题中,这仅在blur上更新。我想在页面加载时添加类。我目前有:

$(document).ready(function() {
    $('.eval-form input').blur(function() {
        if( !$(this).val() ) {
            $(this).parent().addClass('incomplete-answer');
        }
        else {
            $(this).parent().removeClass('incomplete-answer');
        }
    });
});

我希望将.blur替换为第一次加载页面时将继续执行该功能的方法。看起来这应该是我想要做的一件简单的事情,但是我对jQuery缺乏熟悉感正在踢我,而且我对文档没有任何好运。

2 个答案:

答案 0 :(得分:1)

您可以触发该事件。处理程序将为集合中的每个元素调用一次。

$('.eval-form input').blur(function() {
  // ...
}).blur();

您还可以使用toggleClass方法缩小代码:

$(document).ready(function() {
    $('.eval-form input').blur(function() {
        $(this).parent()
               .toggleClass('incomplete-answer', $.trim(this.value) === '');
    }).blur(); // trigger the event once on DOM ready
});

答案 1 :(得分:0)

当然,小菜一碟!你想要的是输入上的每个循环:

$(document).ready(function() {
    $.each($(".eval-form input"), function(i, e) {
        if(!$(e).val()) {
            $(e).parent().addClass('incomplete-answer');
        } else {
            $(e).parent().removeClass('incomplete-answer');
        }  
    });
})