<ul>
私はそれの下に<li>
をたくさん持っています。これらの各<li>
の中に隠された<div class=dbox">
があります。 <li>
年代とそのコンテンツの構造/階層は、次のとおりJQuery非表示の要素がありません
- >リチウム
---->可視コンテンツ(H3、IMG、P、等)
---->隠されたDIV (常に表示)<li>
の画像をクリックすると.dbox
-------> div.photos
-------> div.specs
、<div class="dbox">
は、次に=表示が与えられますブロック。ここまでは順調ですね。私はその後、外をクリックするたびに.dboxを閉じるようにWebを検索しました。私はこれを仕事にしました:
var mouse_is_inside = false;
$('.dbox').hover(function(){
mouse_is_inside=true;
}, function(){
mouse_is_inside=false;
});
$("body").mouseup(function(){
if(! mouse_is_inside) $('.dbox').hide();
});
.dboxの外側をクリックすると、閉じることができます。ここまでは順調ですね。
$('span.close').click(function() {
$(this).parent().parent().hide();
});
動作しませんでした。次のステップは、「<div class="specs">
内、あまりハイテクサヴィユーザーのために、このウィンドウのボタンを閉じ、そう、私は1つの最後の要素を追加して追加することでした、<span class="close">
はそれにこのjqueryのコードを与えました。私は両親( 'dbox')と一緒にテストしたが、どちらもうまくいかなかった。面白いことに、hideを動作させない.dboxをターゲットにしたときだけです。私のような何かを行う場合は、次の、<div class="specs">
を含むdiv要素を閉じます
$(this).parent().hide();
を、それが動作し、効果的に、私はそれから「をクリック外」コードとの競合のいくつかの並べ替えがあったと思っ<div class="specs">
閉じそう私はそれを削除し、バグは残っています...これは、このジレンマについてあなたに知識のある人に尋ねるためにここに私を導きます。事前に
おかげ G.Campos
$(this).parents( '。dbox')が動作するようになりました。hide(1); hide()が空で何も起こらないときだけです。 1を加えるか、何の番号をつけてもそのトリックを行います。しかし、なぜそれは0になりませんか? – Sotkra
http://jsbin.com/やhttp://jsfiddle.net/に例を載せれば助けになるでしょう – Acorn
@Sotkra: '' dbox ''が表示されていることを確認できますか? _image_はクリックされ、 'li'自体がクリックされたときではない? –