Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2022, 21:03   #1
AlexeyPonomarev
Новичок
Джуниор
 
Регистрация: 13.09.2022
Сообщений: 1
Вопрос Как повесить click чтобы он работал через jQ

Столкнулся с проблемой, у меня есть скрипт

$(function(){
const modal = $('#modal');
const modalBtn = $('#btn_own');
const modalBtnClose = $('#modal_btn_close');

modalBtn.click (function() {
modal.removeClass("hidden");
});
modalBtnClose.click (function() {
modal.addClass("hidden");
});
});

в CSS
.hidden {
display: none;
}
Нажимаю на кнопку btn, а нужный мне блок открывается только на 1милисекунду и тут же закрывается. Не понимаю, он ведь должен открываться навсегда. Что я делаю не так?
AlexeyPonomarev вне форума Ответить с цитированием
Старый 15.09.2022, 07:56   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,034
По умолчанию

а если подумать?
у вас два! обработчика на кнопку повешено - один добавляет класс - другой удаляет )))))
что скрипт и делает - показывает и тут же скрывает.... удивительно как вы еще 1 мс успеваете увидеть что-то
если нужно переключать при нажатии на кнопку скрывать или показывать, то используйте toggle()
вместо двух обработчиков - один
Код:
modalBtnClose.click (function() {
   modal.toggle();
})
можно еще с эффектами - slideToggle()
ADSoft вне форума Ответить с цитированием
Старый 23.09.2022, 17:58   #3
Падонак
 
Регистрация: 17.05.2022
Сообщений: 5
По умолчанию

Хз, где там два обработчика... У меня, например, код ТС отлично работает. Подозреваю, что моя разметка отличается от оригинала, но оригинал никто не потрудился выложить.

Код:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title></title>
	<script src="https://code.jquery.com/jquery-latest.min.js"></script>
	<style>
	#modal{
	position: absolute;
	top: 200px;
	left: 200px;
	width: 200px;
	height: 200px;
	border: 5px solid #000;
	background-color: crimson;
	}
	.hidden{
	display: none;
	}
	</style>
   <script>
   $(function(){
     const modal = $('#modal');
     const modalBtn = $('#btn_own');
     const modalBtnClose = $('#modal_btn_close');

     modalBtn.click (function() {
       modal.removeClass("hidden");
     });
     modalBtnClose.click (function() {
       modal.addClass("hidden");
     });
     });
   </script>
  </head>
  <body>  
  	<div id="modal" class="hidden"></div>
	<button id="btn_own">Show modal</button>
	<button id="modal_btn_close">Hide modal</button>
  </body>
</html>
Падонак вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в TChromium сделать чтобы работал referer? swntfz Общие вопросы Delphi 3 25.11.2017 18:16
Как исправить проект,чтобы он работал на Framework 4 all_angarsk C# (си шарп) 1 12.09.2014 10:07
Как сохранить проект VB написанный на win XP , чтобы он работал на win NT Vceznayka Microsoft Office Excel 1 08.02.2012 13:23
JavaScript/JQuery!? Как повесить повесить фунцию на событие load? AlienNation JavaScript, Ajax 0 30.09.2011 17:40
Как исправть код, чтобы работал? Klik_1602 Помощь студентам 0 17.01.2011 19:31