私は以下のようなhtml構造を持っています:
<div id="banner-menu-holder">
<div>
<div class="avalible">
<div class="items-holder">
<div>
<div class="img-holder">
<div>
<input id="set_banner_29" type="checkbox" onclick="mod.setBanner(29);">
...
</div>
</div>
</div>
...
</div>
</div>
<div class="ready">
<div class="items-holder">
<div>
<div class="img-holder">
<div>
<input id="rem_banner_1_8_32" class="remove_banner" type="checkbox" checked="checked">
...
</div>
</div>
</div>
...
</div>
</div>
</div>
</div>
およびjsコード:
$(document).click(function(ev) {
if ($(ev.target).parents().index($('#banner-menu-holder')) == -1) {
$('#banner-menu-holder').css('display', 'none');
}
})
最初のdiv(クラスが利用可能)のチェックボックスをクリックすると、関数は正常に実行されました-このチェックボックスはメインdiv(#banner-menu-holder)の子です。
2番目のdivのチェックボックスをクリックしても、関数が機能しませんでした。jQueryは、これらのチェックボックスがメインdivの子であることを検出しませんでした。
その問題はjQueryにあるのでしょうか、それともそうではありませんか?