Как заставить кнопку снова запускать функцию после того, как окно возьмет на себя управление ею

  • Автор темы dispaas
  • 54
  • Обновлено
  • 13, May 2024
  • #1
Привет, ребята,

Я сделал простой переключатель на JavaScript, но меня поразило, как заставить кнопку запускать функцию каждый раз, когда вы нажимаете на нее.

Я не знаю, как это объяснить.

Но взгляните на код и скажите, как добиться желаемого результата.

(«Если вам лень писать с нуля, то код вполне работоспособен»)
 

<!DOCTYPE html>

<html><head>

<style>

div { background: red; display: none; padding: 20px 10px; }

</style>

</head><body>

<input type=button id=button value="Click Me" /><br/><br/>

<div>

<input type=text placeholder="Введите сюда..." />

</div>

<script>

var d = document.getElementsByTagName('div')

, b = document.getElementById('button');

b.addEventListener('click', () => {

(d[0].style.display !== 'block') ? d[0].style.display = 'block' : d[0].style.display = 'none';

});

d[0].addEventListener('mouseup', (e) => {

e.stopPropagation();

});

window.addEventListener('mouseup', () => {

d[0].style.display = 'none';

});

</script>

</body></html>

Код (разметка): Спасибо,

dispaas


Рег
11 Sep, 2012

Тем
1

Постов
1

Баллов
11
  • 05, Jun 2024
  • #2
Не уверен, чего вы хотите достичь, но вы можете просто отключить кнопку, чтобы она не сработала; с b.disabled = true; и b.disabled = ложь; чтобы включить его снова. Я предполагаю, что вы хотите:
 <!DOCTYPE html>

<html><head>

<style>

div { background: red; display: none; padding: 20px 10px; }

</style>

</head><body>

<input type=button id=button value="Click Me" /><br/><br/>

<div>

<input type=text placeholder="Введите сюда..." />

</div>

<script>

var d = document.getElementsByTagName('div')

, b = document.getElementById('button');

b.addEventListener('click', () => {

(d[0].style.display !== 'block') ? d[0].style.display = 'block' : d[0].style.display = 'none';

b.disabled = true;

});

d[0].addEventListener('mouseup', (e) => {

e.stopPropagation();

});

window.addEventListener('mouseup', () => {

d[0].style.display = 'none';

b.disabled = false;

});

</script>

</body></html>
HTML:
 

Alex.1


Рег
29 Apr, 2014

Тем
0

Постов
4

Баллов
4
  • 10, Jun 2024
  • #4
Спасибо, Не совсем. Я имею в виду, что хочу сделать то же самое, что в меню Твиттера. Посмотрите и попробуйте. Многие веб-сайты имеют эту функцию. Если я не могу сделать это сам, мне придется одолжить у кого-нибудь. Я давно не использую jQuery и почти все о нем забыл.
 

paapasha87


Рег
05 Apr, 2012

Тем
0

Постов
2

Баллов
2
  • 12, Jun 2024
  • #5
Привет. Он (пост №1) конечно переключается, но только клавишей или на кнопке. Не щелчком мыши, из-за последней части:
 () => {}
Код (JavaScript): Хм, странный кодировщик. Я не знал, что мы можем заменить
 function(){}
Код (JavaScript): со следующим синтаксисом:
 window.addEventListener('mouseup', () => { d[0].style.display = 'none'; });
Код (JavaScript):
 

hermesconrad


Рег
21 Jan, 2014

Тем
1

Постов
4

Баллов
14
Тем
49554
Комментарии
57426
Опыт
552966

Интересно