これが私が達成しようとしていることです: 次のmappings2
オブジェクトでは、キーはいくつかのグループ化されたラジオ ボタンの名前プロパティであり、値は最初の文字列がラジオにアタッチされているクラスであるリストです (複数の可能性があります)。そのグループの、このラジオ ボタンを special-radio と呼びましょう。2 番目の文字列は、special-radio がクリックされたときに要素を有効にする必要があるクラスです。以下のコードは、ラジオのグループの変更イベントを切り替えて、特別なラジオがクリックされたときにいくつかのコードを実行し、そのグループの他の非特別なラジオがクリックされたときに別のコードを実行します。
var mappings2 = {
// Group's name special-radio's class other radios
'DependientesEconomicos': ['hijos-dependientes', 'cuantos-hijos'],
'Preparatoria': ['otra-prepa', 'nombre-prepa'],
'ReproboAlgunaMateria': ['reprobo', 'causas-reprobo']
//'CausasReprobo': ['otra-causa-reprobo', 'otra-causa-reprobo-text']
};
(function (maps) {
for (grupo in maps) {
$('input[name="' + grupo + '"]').change(function (e) {
if ($(this).attr('class') === maps[grupo][0]) {
console.log(grupo + ' ' + $(this).attr('class') + ' true');
$('.' + maps[grupo][1]).attr('disabled', false);
} else {
$('.' + maps[grupo][1]).attr('disabled', true);
console.log(grupo + ' ' + $(this).attr('class'));
$('.' + maps[grupo][1]).val('');
}
});
}
})(mappings2);
コードは 1 つのエントリに対しては正常に機能mappings2
しますが、さらに追加すると最後のエントリのみが機能し、前のグループの無線の 1 つをクリックすると、ログに正しいクラスが表示grupo
されますが、それが属するグループではなく、最後のエントリが表示されます。エントリのグループなので、それがすべてのバグの原因です。私の質問はその理由です。
jquery1.5.1
ありがとう。