JQuery之blur事件!为何一来全部失焦了。

$(document).ready(function(){
var listInput=$("input");
for(var i=0;i<listInput.length;i++){
$(listInput[i]).blur(blurF($(listInput[i])));
}
var listTextarea=$("textarea");
for(var i=0;i<listTextarea.length;i++){
$(listTextarea[i]).blur(blurF($(listTextarea[i])));
}
var listSelect=$("select");
for(var i=0;i<listSelect.length;i++){
$(listSelect[i]).blur(blurF($(listSelect[i])));
}
});

function blurF(_this){
var val=_this.val().trim();
if(val==null ||val==""){
_this.after("不允许为空!");
}
}

http://www.w3school.com.cn/jquery/event_blur.asp

你是执行blurF函数将返回值作为blur事件处理函数,你又没有返回函数,blur事件没有处理函数,直接绑定blurF就行了,函数内this就是当前dom对象,不需要做什么闭包,多看jquery api

    $(document).ready(function () {
        var listInput = $("input");
        for (var i = 0; i < listInput.length; i++) {
            $(listInput[i]).blur(blurF);
        }
        var listTextarea = $("textarea");
        for (var i = 0; i < listTextarea.length; i++) {
            $(listTextarea[i]).blur(blurF);
        }
        var listSelect = $("select");
        for (var i = 0; i < listSelect.length; i++) {
            $(listSelect[i]).blur(blurF);
        }
    });

    function blurF() {
        var _this = $(this);
        var val = _this.val().trim();
        if (val == null || val == "") {
            _this.after("不允许为空!");
        }
    }