如何指定在另一个函数中定义的 onchange 函数?
How to specify onchange function that is defined within another function?
我有一个包含多个值的表单。当值为 selected/changed 时,需要将其传递给函数。然而,这个函数是在另一个函数中定义的(最好保持这种状态)。心目中的函数也有多个参数。
HTML
<select onChange="selectValue(this.value, x, y)">
<option value="Value 1"> Value 1 </option>
JS
function FunctionOne()
{
this.selectValue = function(value, x, y) { /* do something */ }
}
所以我会像这样在别处调用这个函数:
A = new FunctionOne();
A.selectValue(value, 1, 2) // where value is specified from an instance of my data (irrelevant to the problme I'm having)
这样就找不到 onchange
函数,理想情况下我不想在其他函数之外定义它。此外,我不确定如何在 HTML 代码中处理 selectValue
的多个输入。
只要 A
存在(将其分配到 window 或文档)选择更改的时间和地点,您可能会这样做:
<select onChange="function(){A.selectValue(this.value, x, y);}">
函数是一个闭包,它定义了一个私有范围。我建议尝试模块模式,这对所有 javascript 来说都是一个很好的模式(你会看到它被 jQuery 使用,被 Mozilla 等推荐)。你的情况是这样的:
function functionOne() {
var methods = {
selectValue: function(value, x, y) {
//Do something here
}
};
return methods;
}
现在您可以执行以下操作:
new functionOne().selectValue(a, b, c);
我有一个包含多个值的表单。当值为 selected/changed 时,需要将其传递给函数。然而,这个函数是在另一个函数中定义的(最好保持这种状态)。心目中的函数也有多个参数。
HTML
<select onChange="selectValue(this.value, x, y)">
<option value="Value 1"> Value 1 </option>
JS
function FunctionOne()
{
this.selectValue = function(value, x, y) { /* do something */ }
}
所以我会像这样在别处调用这个函数:
A = new FunctionOne();
A.selectValue(value, 1, 2) // where value is specified from an instance of my data (irrelevant to the problme I'm having)
这样就找不到 onchange
函数,理想情况下我不想在其他函数之外定义它。此外,我不确定如何在 HTML 代码中处理 selectValue
的多个输入。
只要 A
存在(将其分配到 window 或文档)选择更改的时间和地点,您可能会这样做:
<select onChange="function(){A.selectValue(this.value, x, y);}">
函数是一个闭包,它定义了一个私有范围。我建议尝试模块模式,这对所有 javascript 来说都是一个很好的模式(你会看到它被 jQuery 使用,被 Mozilla 等推荐)。你的情况是这样的:
function functionOne() {
var methods = {
selectValue: function(value, x, y) {
//Do something here
}
};
return methods;
}
现在您可以执行以下操作:
new functionOne().selectValue(a, b, c);