Как сделать так, чтобы onclick срабатывало только 1 раз?
Надо сделать защиту от
Читал stackoverflow, но одобренных решений не нашел. |
Всем спасибо за внимание, нашел! :)
if (!clicked) {
// Set clicked to true
clicked = true;
}
Там ещё были варианты, но этого хватило. :) |
Но идеологически это не правильный вариант. Потому что бесполезное событие продолжает висеть.
Правильно делать так:
element.addEventElistener('click', function() {
// ...
}, {
once: true
})
|
Цитата:
element.addEventListener('click', function() { } , {once : true});
https://learn.javascript.ru/introduction-browser-events |
Цитата:
Вам, экспертам javascript - хорошо, а мне далеко не всё понятно в ваших примерах. При этом в "if" я могу засунуть изменение цвета "псевдокнопки" (тег span), чтобы визуально было понятно, что она уже нажата. Сейчас мой код выглядит так:
<script>
var clicked = false;
function example1() {
if (!clicked) {
// Set clicked to true
clicked = true;
Здесь выполняем необходимые действия.
}
}
</script>
Где должна быть указанная Вами и Вашим коллегой строка? |
Цитата:
Цитата:
Т.е. использовать глобальную переменную для такого дела вообще не стоит. :no: |
Цитата:
|
Как вариант...
<button id='element'>Тест</button>
<script>
element.addEventListener('click', function() {
alert('Меняем')
element.addEventListener('click', function() {
alert('Нет')
});
} , {once : true});
</script>
|
Цитата:
|
Все работает со span
<span id='element'>Тест</span>
<script>
element.addEventListener('click', function() {
alert('Меняем')
element.addEventListener('click', function() {
alert('Нет')
});
} , {once : true});
</script>
|
| Часовой пояс GMT +3, время: 13:49. |