Javascript 中意外触发更改事件
Unexpected firing of change event in Javascript
我正在使用 url 参数来告诉后端如何对页面上的多个列表进行排序。参数是根据每个列表的 select 块设置的(sortBy,orderBy)。在页面加载时,我正在设置 selects 以匹配参数。
function setSortOptions()
{
var select = document.getElementsByTagName("select"),
qParams = getParameters();
for (var i=0, l = select.length; i < l; i++)
{
var self = select[i],
name = self.name,
value = qParams[name],
opt = self.options[value];
if(opt) opt.selected = true;
select[i].addEventListener("change", SortMyLists(event), false);
}
}
使用我当前的函数,事件侦听器会立即触发 SortMyLists。当我在分配事件侦听器之前更改 selected 选项时,为什么会这样?
不执行函数。只需传递对它的引用:
select[i].addEventListener("change", SortMyLists`, false);
我正在使用 url 参数来告诉后端如何对页面上的多个列表进行排序。参数是根据每个列表的 select 块设置的(sortBy,orderBy)。在页面加载时,我正在设置 selects 以匹配参数。
function setSortOptions()
{
var select = document.getElementsByTagName("select"),
qParams = getParameters();
for (var i=0, l = select.length; i < l; i++)
{
var self = select[i],
name = self.name,
value = qParams[name],
opt = self.options[value];
if(opt) opt.selected = true;
select[i].addEventListener("change", SortMyLists(event), false);
}
}
使用我当前的函数,事件侦听器会立即触发 SortMyLists。当我在分配事件侦听器之前更改 selected 选项时,为什么会这样?
不执行函数。只需传递对它的引用:
select[i].addEventListener("change", SortMyLists`, false);