У меня есть 3 функции такие же, как и ниже. ShowAction2(), ShowAction3() и ShowAction4(). Каждая функция отвечает за отображение DIV, скрытие других DIV и добавление и удаление классов.Функция иногда требует двойного щелчка, чтобы работать
Затем он удаляет функцию showAction() и добавляет новую функцию gogo(). который отменяет весь процесс, если функция называется второй раз.
$("#clickDiv").click(function showAction(){
$("#infDivOne").show();
$("#infDivTwo, #infDivThree, #infDivFour").hide();
$(".goActive2, .goActive3, .goActive4").removeClass('glow');
$("#clickDiv2, #clickDiv3, #clickDiv4").removeClass('rotated');
$("#clickDiv").addClass('rotated');
$(".goActive").addClass('glow');
$("#clickDiv").off('click');
$("#clickDiv").on('click', function gogo(){
$("#infDivOne").hide();
$(".goActive").removeClass('glow');
$("#clickDiv").removeClass('rotated');
$("#clickDiv").off('click');
$("#clickDiv").on('click',showAction);
});
});
Я уверен, что есть лучшие способы достижения аналогичного результата, но прямо сейчас, это своего рода работа. Единственная проблема заключается в том, что иногда мне нужно дважды щелкнуть кнопку для функции, которую нужно вызвать.
В конечном итоге я заменил всю функцию, но может ли кто-нибудь указать, почему для этого требуется двойной щелчок порой и один клик в другое время?
(И я извиняюсь заранее для тех, кто пытается прочитать эту jibberish.)
нажмите событие внутри события мыши, вероятно, главная причина. –
Что вы пытаетесь добиться назначения двух кликов на один и тот же идентификатор 'clickDiv'? и событие click внутри события кликов? – Unknown
Функциональность здесь, похоже, слабо имитирует старый метод .toggle (fn, fn), id 'предлагает посмотреть на метод toggleClass. –