我正在尝试在表单元素模糊上做一些事情。我遇到的问题是将元素的信息(如ID,类等)传递给第二个函数。我为此示例简化了它:
function otherfunction() {
var inputID = $(this).attr("id");
alert(inputID);
}
$(".formelement").blur(function () {
// Do some stuff here
otherfunction();
});
当然,警告框表示inputID未定义。如何将元素的信息传递给其他函数?
答案 0 :(得分: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);
});
答案 1 :(得分:2)
在以下情况下使用$.proxy:
$(".formelement").blur($.proxy(otherfunction, this));
$(".formelement").blur(function () {
// Do some stuff here
otherfunction.call(this); // or otherfunction.apply(this);
});
答案 2 :(得分:0)
我想你可以这样使用:
function otherfunction(obj) {
var inputID = $(obj).attr("id");
alert(inputID); }
$(".formelement").blur(function () {
otherfunction($(this));
});