そのため、コードに奇妙な動作があり、その理由がわかりません。
たとえば、チェックボックスは次のようになります。
<label>Check Boxes</label>
<div class="input_group">
<div class="checker"><span><input style="opacity: 0;" name="option" value="option 1" type="checkbox"></span></div>First option<br>
<div class="checker"><span><input style="opacity: 0;" name="option" value="option 2" type="checkbox"></span></div>Second option<br>
<div class="checker"><span><input style="opacity: 0;" name="option" value="option 3" type="checkbox"></span></div>Third option
</div>
そのため、check オプションがチェックされている場合、親スパンは「checked」クラスを追加します。
そこで、ユーザーがユーザーを追加し、そのユーザーの新しいアドレスを作成するか、会社のアドレスを使用するかを選択できるシステムを開発しようとしていました。
両方のアドレスが異なる div に読み込まれ、会社のアドレスが非表示になるため、これが私が作成した関数です。
$('input[name="company_addr"]').change(function(){
var checked = $(this).is(':checked');
$('input[name="company_addr"]').each(function(){
$(this).attr('checked',checked);
if (checked)
$(this).parent().addClass('checked');
else
$(this).parent().removeClass('checked');
});
if (checked){
newAddrContent = block_new.html();
block_new.html(block_company.html());
}
else{
block_new.html(newAddrContent);
}
});
最後の if ... else を削除して会社の住所を再表示すると、両方のチェックがどのように変更され、その部分が問題なく機能するかがわかります。
ただし、block_new 内のチェックボックスは機能しなくなりましたが、block_company のチェックボックスは機能します。会社(非表示にする必要があります)をクリックすると、もう一方の会社はチェックを外したりチェックしたりしませんが、コンテンツは適切に置き換えられます。
何が起こっているのでしょうか?