【发布时间】:2014-08-28 14:28:08
【问题描述】:
我有一些用于年份、品牌、型号、子型号、颜色的链接选择元素。第一个在加载时通过 getJSON 调用填充:
$.getJSON("http://mydomain/something.cfm?get=years",
function(json) {
var data = "";
$.each(json, function(i, v) {
if(v.name != ""){
data = data + "<option value='" + v.value + "'>" + v.name + "</option>";
}
});
$(wheelBuilder.YEARS).html(data).removeAttr("disabled");
if(getUrlVars()["year"] != undefined){
$(wheelBuilder.YEARS).val(getUrlVars()["year"]);
$(wheelBuilder.YEARS).change();
}
}
);
当用户选择一个项目时,会填充后续的选择元素。 .change() 函数进行 .getJSON() 调用以获取数据以填充每个后续选择元素。 getUrlVars() 函数按名称从查询字符串中获取变量。如果它们可用,则必须预先选择每个选择元素。为了进行这种预选,必须调用 .change() 函数,以便填充下一个元素。
问题是,我需要代码在这些 .change() 函数中运行,仅当从 onload 调用它们时,而不是当用户手动进行更改时。我注意到 jquery 文档有一个用于 .change() 函数的 .change( [eventData ], handler ) 选项,但我不确定这是否可以解决问题或如何使用它(未提供示例)
谢谢。
TLDR:基本上,我试图找到一种方法来区分选择选项何时被代码选择和何时选择选项被人类选择。
【问题讨论】:
标签: javascript jquery