Этот сценарий делает так, что когда вы нажимаете на <div>
, появляется другой <div>
, добавляя класс log_in_box_dd
к #big_ul_hide
. Как только #big_ul_hide
получит этот класс, щелчок в любом месте (кроме #big_ul_hide
удалит этот класс, тем самым скрывая его. Таким образом, вы щелкаете, чтобы увидеть всплывающий элемент div, затем щелкните в любом месте, но этот элемент должен скрыть его.
Все это работает, но только один раз. После этого все становится очень странно.
После того, как он будет добавлен, а затем удален, проверка элементов покажет <div id="big_ul_hide" class="">
. Я не могу заставить класс повторно добавиться.
Я добавил функцию setTimeout
, чтобы она не удаляла класс сразу при нажатии .lin_und
.
Итак, почему он не позволяет мне повторно добавить класс? Если я alert(...)
после .toggleclass
, он будет каждый раз предупреждать, но все равно не применит класс.
скрипка: http://jsfiddle.net/NQxAC/
<script>
$('.lin_und').click(function() {
$('#big_ul_hide').toggleClass('log_in_box_dd');
});
setTimeout(function() {
$('html').click(function() {
if($('#big_ul_hide').hasClass('log_in_box_dd')) {
$('#big_ul_hide').removeClass('log_in_box_dd');
}
});
$('#big_ul_hide').click(function(event) {
event.stopPropagation();
});
}, 2000);
</script>
setTimeout
. Пожалуйста, уберите их из дерьма - person Deepak Ingole   schedule 02.04.2014