2011-07-03 10 views
0

ユーザーがタイトル(通知)をクリックすると表示される非表示のdivがあります。 「サブパネル」divはデフォルトでは隠されていますが、jqueryを使用すると、ユーザが「Notifications」という単語をクリックすると開いたり閉じたりします。JQUERY:ユーザーがその外をクリックするとdivを閉じる

jqueryを変更して、開いているサブパネルのサブパネルの外側をクリックすると、サブパネルが閉じる/非表示になるようにするにはどうすればよいですか?

<div class="notiftitle" id="notiftitle"> 
<a href="#" class="alerts">Notifications</a> 
<div class="subpanel"> 
    <div id="title">New Notifications</div> 
    <ul> 
     <li>Data</li> 
    </ul> 
    </div> 
</div> 
 
$(document).ready(function(){ 

    //Switch the "Open" and "Close" state per click then slide up/down (depending on open/close state) 
    $(".alerts").click(function(){ 
     $(this).toggleClass("notiftitleactive"); 
     $(this).toggleClass("active").next().slideToggle(50); 
     return false; //Prevent the browser jump to the link anchor 
    }); 


}); 
+2

falseを返すのではなく、evt.preventDefault()を使用する方がよいでしょう。http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false –

答えて

0

mouseout方法を試してみてください。

+0

私はそれを閉じる必要はありません。マウスの葉は、誰かがそれから離れてクリックした場合にのみ表示されます。 – Mark

1

あなたはblurイベントを使用する必要があります。

$(".alerts").blur(function(){ 
    $(this).toggleClass("notiftitleactive"); 
    $(this).toggleClass("active").next().slideToggle(50); 
}); 
+0

@josh does not work? – Mark

+0

は私のためには機能しません。入力要素に対してのみ? – appsthatmatter

関連する問題