現在の実装は Chrome と IE では完全に機能しますが、Firefox では機能しないため、タイトルで Firefox について言及しています。
現在、1 つのドロップダウン メニューに 2 つのグループのチェックボックスがあり、upperFilter と LowerFilter という 2 つの異なるクラスによって識別されます。私がしたいのは、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...
});
上で述べたように、これは Chrome と IE で機能しますが、Firefox では、複数のチェックボックスが選択されていて、他のグループのチェックボックスを選択すると、以前にチェックしたボックスの 1 つだけが選択解除されます。
奇妙なのは、upperFilter から 3 つのボックスを選択し、Firebug コンソールを開いて入力する$('INPUT:checked').filter('.upperFilter').click();
と、3 つすべてを一度に選択解除できることです。また、参考までに、すべての JS はページの最後にロードされます。
ページ内ではなくコンソールで機能する理由がわかりません。