我在标题中提到了 Firefox,因为我当前的实现在 Chrome 和 IE 中完美运行,但在 Firefox 中却不行。
目前,我在一个下拉菜单中有两组复选框,它们由两个不同的类、upperFilter 和 lowerFilter 标识。我想要发生的是,当单击upperFilter 组中的复选框时,取消选择lowerFilter 组中已选中的任何复选框,反之亦然。
这就是我目前在javascript中处理这个的方式:
$("INPUT:checkbox").click(function () {
if ($(this).hasClass("upperFilter") && $('INPUT:checked').filter('.lowerFilter').length > 0) {
$('INPUT:checked').filter('.lowerFilter').click();
} else if ($(this).hasClass("lowerFilter") && $('INPUT:checked').filter('.upperFilter').length > 0) {
$('INPUT:checked').filter('.upperFilter').click();
}
// other stuff...
});
Like I stated above, this works in Chrome and IE but in Firefox what happens is that when more than one checkbox is selected and you select a checkbox in the other group only one of the previously checked boxes get deselected.
奇怪的是,我可以从 upperFilter 中选择 3 个框,然后打开 Firebug 控制台并输入$('INPUT:checked').filter('.upperFilter').click();
,它会立即取消选择所有 3 个框。此外,所有 JS 都在页面末尾加载,仅供参考。
我不知道为什么它会在控制台中而不是在页面中工作。