2

我正在尝试在表单元素模糊上做一些事情。我遇到的问题是将元素的信息(例如 ID、类等)传递给第二个函数。我已经为这个例子简化了它:

function otherfunction() {
    var inputID = $(this).attr("id");
    alert(inputID);
}


$(".formelement").blur(function () { 

// Do some stuff here

otherfunction();

}); 

当然,警告框说 inputID 是未定义的。如何将元素的信息传递给 otherfunction?

4

3 回答 3

3

将输入作为参数传递:

function otherfunction(el) {
    var inputID = $(el).attr("id");
    alert(inputID);
}


$(".formelement").blur(function () {
    // Do some stuff here

    otherfunction(this);
}); 

或者,使用Function.prototype.apply

function otherfunction() {
    var inputID = $(this).attr("id");
    alert(inputID);
}


$(".formelement").blur(function () {
    // Do some stuff here

    otherfunction.apply(this);
}); 
于 2012-04-11T19:09:55.990 回答
2

在以下情况下使用$.proxy

$(".formelement").blur($.proxy(otherfunction, this));

否则 javascript 的调用应用

$(".formelement").blur(function () { 

    // Do some stuff here

    otherfunction.call(this); // or otherfunction.apply(this); 
});
于 2012-04-11T19:11:40.173 回答
0

我想你可以这样使用:

function otherfunction(obj) {
    var inputID = $(obj).attr("id");
    alert(inputID); }


$(".formelement").blur(function () { 

otherfunction($(this));

});
于 2012-04-11T19:15:10.983 回答