2011-11-16 6 views
1

は私がそれの外側をクリックしたときにドロップダウンを非表示にするこのコードを使用していますがあります時にドロップダウンを非表示:それの外側をクリックします(jQueryの)

$('body').click(function() { 
    $('#ddbox').hide(); 
}); 

$('#ddbox').click(function(event){ 
     event.stopPropagation(); 
}); 

それが働いています。しかし、私はこのドロップダウンを表示/非表示にする別のリンクを持っています。上記のコードを使用する場合は、そのリンクを2回クリックしてドロップダウンを表示する必要があります。これは、ドロップダウンリストの表示/非表示のコードです。

$('#ddtrigger').toggle(function() { 
    $('#ddbox').show(); 
}, function() { 
    $('#ddbox').hide(); 
}); 

何が問題になりますか?

EDIT(これはHTMLです):

<a href="#" id="ddtrigger">Some link</a> 

<div id="ddbox"> 

    <p>Some text</p> 

</div> 

答えて

0

あなたはそれを隠すためにドロップダウンにjqueryのblurイベントを使用することができませんか?

1

.toggle問題だと思います。あなたは2つのリンクを持っています。したがって、これらの2つのトグル機能は同期されません。なぜ.toggleをこのようなものに変更しないのですか?

$('#ddtrigger').click(function() { 
    $('#ddbox').toggle(); 
}); 
+0

私は「クリック」を使用すると、ドロップダウンがありませんまったく現れません。 – catandmouse

+0

HTMLを投稿できますか? –

+0

私はHTMLで私の質問を編集しました。 HTMLはかなり簡単です。 – catandmouse

0

あなたがこの便利を見つけるかもしれ...

$(document).mouseup(function(e){ 
    if($(e.target).parent('Object_to_hide').length == 0) { 
     Object_to_hide.hide(); 
    } 
}); 

は、私は一度これを使用し、それは素晴らしい仕事を...

関連する問題