Почему onclick работает не с первого раза

Форум

Справочник

Опции темы Искать в теме

и целая структура имеет следующий вид:

Добавление строк реализуется с помощью AJAX в режиме синхронном. В целом, функция, которая отвечает за добавление записей выглядит так (некоторые ненужные строки удалены, что бы было легче читать):

функция parseLine функция parseLine возвращает строку типа

текст строки лога.

И всё, вроде бы, хорошо, всё работает.
НО: редко, но бывает такое, что кнопки и чекбоксы верхней панельки не срабатывают с первого раза. Кликаешь, ничего не происходит. Кликаешь второй раз и всё в порядке. Подозреваю, что это из-за того, что добавление строки лога блокирует интерфейс на доли секунды. И вот вопрос: как от этого избавиться? И можно ли.. Иногда это мешает. Что не есть хорошо.
PS: используется только чистый javascript. Возможность использования библиотек или фреймворков исключена.
PSS: не знал в какую ветку форума закинуть тему. Оставил здесь, так как главная проблема в элементах..

Источник

Клик срабатывает со второго раза

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Клик срабатывает только со второго раза
Простенький код, все работает на реагирует на клик только со второго раза, как исправить ? Вот код.

Onklick() срабатывает со второго раза
Всем доброго времени суток. Только начинаю изучать js просьба не пинать. В общем делаю проверку на.

Спойлер срабатывает со второго раза
Здравствуйте, почему спойлер срабатывает после второго клика, и затем безперебойно, как уладить? .

Событие срабатывает со второго раза
Здравствуйте! Суть проблемы такова. Имеется скрипт, который рисует карты (он в прикрепленном.

Web_Master, извиняюсь)) запарился не вставил)

sendxt, Потому что у тебя логика скрипта такая.

Читайте также:  Не работает динамик pioneer

Изначально твой flag === 0.

Далее ты делаешь click по любому элементу
проверяется условие на отображение блока:
в условии, что бы блок показался (display: block)
надо что бы flag был равен 0

твоё условие срабатывает первый раз и меняет твой flag на 1

а далее ты хочешь что бы отобразился следующий элемент.
но для того что бы он отобразился надо что бы flag был равен 0.

а поскольку у тебя 1 переменная на все блоки то она до этого момента равна 1.

далее ты кликаешь. по условию переменная не равна 0 .

и flag становится равен 0

далее всё срабатываете и уходит в описанный мною выше цикл.

Добавлено через 43 секунды
alexsamos33, хрен бы с ним что строка число.
JS приведёт всё к нужному виду.
у него логика нарушена.

Добавлено через 8 минут
sendxt, Вот тебе нормальные вкладки на jQuery 1 скрипт на всё.

Источник

Кнопка срабатывает со второго клика, а должна с первого, как устранить?

Во внешнем файле функция:

Данная функция вызывается в теге div onClick=»btn1(‘p1’) . По нажатии на кнопку должно открываться окно, при повторном — закрываться. Все работает, но при загрузке или обновлении страницы кнопка срабатывает только со второго раза, все последующие разы — с первого. Если прописать

непосредственно в теге без использования внешнего файла, то кнопка срабатывает с первого раза.

Теперь вопрос:
Возможно ли эту проблему исправить при использовании функции во внешнем файле, если да, то как? Или этот бок не исправим и все надо прописывать в документе?
Наглядный результат.

3 ответа 3

Uncaught ReferenceError: btn1 is not defined

class в js — это зарезервировано, и использовать это слово в качестве названия переменной приводит к ошибке.

Была аналогичная ситуация.
Вынес display:none из файла css в основной файл и всё заработало.

UPD Прошу прощения за неполный ответ.

Смысл в том, что document.getElementById(«id»).style представляет только inline стиль.
Т.е. для

Таким образом, с точки зрения браузера элементы в обоих случаях будут спрятанными, но с точки зрения javascript и document.getElementById(«id»).style в частности стиль будет отличаться.

Читайте также:  Как настроить данные для аутентификации

Соответственно, если вы присваиваете

то это приводит к

Ну и теперь функция ваша будет работать с пустым значением style.display для первого клика, когда inline стиль пустой, а применен стиль из stylesheet’а. И при последующих кликах будет меняться уже inline стиль в зависимости от предыдущих указанных в нем значений.

как вариант можно еще написать

Так еще лучше и короче.

UPD2 Если есть желание не завязываться на знание того, что у вас в таблицах стилей прописано, то можно получить итоговый вычисленный стиль для элемента.

тогда будет работать при любых заданных стилях, хоть в stylesheet, хоть в inline стиле.

Источник

Почему клик не срабатывает больше одного раза?

Оценить 6 комментариев

Во-первых, прислушайтесь к совету, что дал Роман, и сделайте так:

Во-вторых, если после первого раза перестаёт срабатывать, то нужно смотреть на элемент .ui-state-default в консоли и наблюдать, что с ним происходит после клика. Мне кажется, вполне очевидно, что такого класса больше нет.

Update
Если в найденных ячейках событие срабатывает 1 раз, а попытка поймать его в document не венчается успехом, какой вывод следует?
Очевидно, что:
— после выбора даты таблица перерисовывается полностью
— всплытие события принудительно останавливают где-то в пределах элемента с инициализацией календаря

Как поступить в таком случае?

1. Можно вспомнить про первую фазу распространения события и написать примерно такое для борьбы с любителями preventDefault

2. А можно (и это правильный способ), почитать API того плагина, что вы используете, и найти там вот такую штуку:

Источник

Почему onclick работает не с первого раза

  • Поисковые системы
    • Google
    • Яндекс
    • Каталоги сайтов
    • Прочие поисковики
    • Агрегаторы и доски объявлений
  • Практика оптимизации
    • Общие вопросы оптимизации
    • Частные вопросы — ранжирование, индексация, бан
    • Сервисы и программы для работы с SE
    • Любые вопросы от новичков по оптимизации
    • Ссылочные и пользовательские факторы
    • Поисковые технологии
    • Doorways & Cloaking
  • Трафик для сайтов
    • Поисковая и контекстная реклама
    • Google Adwords
    • Яндекс.Директ
    • Тизерная и баннерная реклама
    • Общие вопросы рекламы
  • Монетизация сайтов
    • Партнерские программы в Интернете
    • Контекстная реклама
    • Google AdSense
    • Рекламная Сеть Яндекса
    • Размещение тизерной и баннерной рекламы
    • Общие вопросы
  • Сайтостроение
    • Веб-строительство
    • Статистика и аналитика
    • Доменные имена
    • Администрирование серверов
    • Хостинг
    • Безопасность
    • Usability и удержание посетителей
    • Копирайтинг
  • Социальный Маркетинг
    • Вконтакте
    • YouTube
    • Facebook & Instagram
    • TikTok
    • Telegram
    • Общие вопросы
  • Общение профессионалов
    • Семинары и конференции
    • eCommerce, интернет-магазины и электронная коммерция
    • Телефония и коммуникации для бизнеса
    • Деловые вопросы
    • Финансы
    • Cчет в Яндекс.Деньгах
    • Криптовалюты
    • Инвестиции
    • Экономика
    • Правовые вопросы
  • Биржа и продажа
    • Финансовые объявления
    • Работа на постоянной основе
    • Сайты — покупка, продажа
    • Соцсети: страницы, группы, приложения
    • Сайты без доменов
    • Трафик, тизерная и баннерная реклама
    • Продажа, оценка, регистрация доменов
    • Ссылки — обмен, покупка, продажа
    • Программы и скрипты
    • Размещение статей
    • Инфопродукты
    • Прочие цифровые товары
  • Работа и услуги для вебмастера
    • Оптимизация, продвижение и аудит
    • Ведение рекламных кампаний
    • Услуги в области SMM
    • Программирование
    • Администрирование серверов и сайтов
    • Прокси, ВПН, анонимайзеры, IP
    • Платное обучение, вебинары
    • Регистрация в каталогах
    • Копирайтинг, переводы
    • Дизайн
    • Usability: консультации и аудит
    • Изготовление сайтов
    • Наполнение сайтов
    • Прочие услуги
  • Не про работу
    • О сайте и форуме
    • Самое разное
    • Курилка
    • Встречи и сходки
    • Железо и софт
Читайте также:  Как настроить java для minecraft windows 10

Как правильно удалить страницы с сайта и избежать проблем

В Google Ads API изменятся правила для наборов user_identifers в UserData

Помаленьку делаю дизайн тут. Там снизу менюшка в виде кнопки, по нажатии на которую, срабатывает

Простецкая функция ShowMenu:

Так вот, при первом клике ничего не происходит, меню нормально открывается\закрывается только со 2 клика. С чем связано такое поведение?

По умолчанию display установлен у тебя скорее всего и не none и не block

Сначало он проверяет, видит что значение не none и ставит none

f потом уже значение none и он срабатывает как нада

Silent_Kill, display: none по умолчанию прописано в stylesheet.css

Добавлено: прописал стиль в самом шаблоне, а не в css файле и всё заработало, спасибо.

заглянул на сайт — убей ссылку на #

ваще там лучше не a юзать, а спан

onclick=»javascript:ShowMenu(); return false;»

Источник

Оцените статью