1
<a class="btn">Click ME </a>

<div class="content">
    Content
</div>

$('.btn').click(function(){
    $('.content').slideToggle();
});

ここでフィドル

正常に動作していますが、私の質問は.btn ボタンの外側をクリックしたときにdiv.contentをスライドさせる必要があります

ありがとう

4

6 に答える 6

3
$('.btn').click(function(e){
     $('.content').slideToggle();
     e.stopPropagation();
});

$(document).click(function(){
     $('.content').slideUp();
})

働くフィドル

于 2013-09-04T06:21:03.243 に答える
2

これを試してみてください、より使いやすくシンプルなコードだと思います

$('.btn').click(function(){
    $('.content').delay(100).slideDown( function(){
});

});
$('html').click(function(){
  if( $('.content').is(':visible') ) {
     $('.content').slideUp();
  }
});

デモ

于 2013-09-04T06:31:32.393 に答える
1

これが行うことは、すべてのクリックを探すことです。

クリックがコンテンツでも btn でもない場合、メニューが上にスライドします。

 $(document).click(function(e){
    if (!$(e.target).hasClass('content') &&  !$(e.target).hasClass('btn') ) {
         $('.content').slideUp();
    }
});
于 2013-09-04T06:27:31.330 に答える
1

ワーキングデモ

これを試して

$('.btn').click(function (event) {
    $('.content').slideToggle();
    event.stopPropagation();
});
$(document).click(function() {
   $('.content').slideUp();
});
于 2013-09-04T06:29:08.160 に答える
1

試す

$('.btn').click(function(){
    $('.content').slideToggle();
    return false;
});

$(document).click(function(e){
    if(!$(e.target).closest('.content').length){
        $('.content').slideUp();
    }
})

デモ:フィドル

于 2013-09-04T06:23:07.553 に答える
1

以下のコードを使用します。

$("body").click
(
  function(e)
  {   
    if(e.target.className !== "btn")
    {
      $('.content').slideToggle();
    }
  }
);

http://jsfiddle.net/zFUUq/5/

于 2013-09-04T06:20:59.383 に答える