щелчок снаружи div внутри div должен быть закрыт

0

Я попробовал этот код, чтобы открыть внутренний div и закрыть div. но у меня проблема, когда я выхожу за пределы div, но это не близко. просто мне нужна помощь в нем, когда я выхожу за пределы div, а также внутренний div должен быть близок.

вот код:

<div class="userNameBox">prashant birajdar
    <div class="profile" style="display:none" tabindex="-1">
       here is the code.        
    </div>
</div>

вот код js

$( ".userNameBox" ).click(function() {
  $( ".profile" ).toggle( "slow" );
});

и вот jsfiddel http://jsfiddle.net/prashantbirajdar123/tY2vU/

  • 0
    То есть вы хотите, чтобы клики за пределами .userNameBox закрывали .profile ?
  • 0
    Ваш код захватывает клики ВНУТРИ div - у вас нет обработчика для внешнего (если у вас его нет где-то еще в коде).
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

На мой взгляд, лучшим решением является добавление в тело события, которое скроет профиль при нажатии, а функция userNameBox перестанет распространять события.

$( ".userNameBox" ).click(function(e) {
  e.stopPropagation();
  $( ".profile" ).toggle( "slow" );
});

$(document).click(function(e){
  $( ".profile" ).hide( "slow" );
});
2

Слушайте тело и посмотрите, откуда появился клик

$(document).click(function(evt) {
  if($(evt.target).closest(".userNameBox").length===0 && $(".profile").is(":visible")) {
      $(".profile").slideUp( "slow" );
  }
});
  • 0
    Что если они .profile на .profile ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню