我有一个 Spry 过滤器功能,它可以工作:
function ffRed(ds, row, index){ var c = row["color"]; return c == 'red' ? row : null; };
由复选框的单击处理程序调用的函数切换:
function ToggleFilter(enable, f)
{
if (enable)
ds1.addFilter(f, true);
else
ds1.removeFilter(f, true);
}
复选框在哪里onclick="ToggleFilter(this.checked, ffRed);"
我宁愿从复选框传递一个参数,这样我就可以对所有复选框使用相同的处理程序和过滤器,并从单击处理程序传递哪种颜色(例如“红色”)。
我可以将参数传递给 ToggleFilter 函数没有问题,但是如何将它传递给 filterFunction 呢?
像这样有点道理:
function ffColor(ds, row, index, clr){ var c = row["color"]; return c == clr ? row : null; };
除非这样做:ds1.addFilter(f, true, clr)
假设 clr 已从单击处理程序传递了字符串“red”。那部分有效,但我显然将它传递给过滤器函数是错误的。