Выполнить jQuery переключения в трех частях - PullRequest
0 голосов
/ 29 марта 2020

Я хочу, чтобы ниже jquery код выполнялся из 3 частей.

  1. Часть-1, запускалась только один раз при загрузке страницы
  2. Часть-2, запускалась только при первом нажатии
  3. Part-3, запустите на 2-м месте и нажмите любую кнопку в дальнейшем

, но она не работает в соответствии с моими потребностями.

    $('.myClass').toggle(function() {
        alert('Part-1, run once only on page load');
    }, function() {
        alert('Part-2, run on 1st click only');
    }, function() {
        alert('Part-3, run on 2nd and any furthur clicking');
    }).click();

Ответы [ 3 ]

2 голосов
/ 29 марта 2020

Решением будет разделить эти обратные вызовы на 2 события. Первое событие - это событие «готово», в этом случае:

$(document).on('ready', function() {
    alert('Part-1, run onece only on page load');
});

После этого вам нужно создать еще одну привязку события:

$('.myClass').one('click', function() { 
    alert('Part-2, run on 1st click only');

   $(this).click(function() { 
      alert('Part-3, run on 2nd and any furthur clicking');
   });
});

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

0 голосов
/ 29 марта 2020
  1. Все, что должно быть выполнено один раз, может быть запущено в Document Ready FunctionN здесь
  2. Сколько раз это нажатие может быть просто посчитано в локальной переменной и использовано в логи c. JQuery функция щелчка

JSFiddle

var clickCount = 0;

$(document).ready(function(){
    alert('Part-1, run once only on page load');
})

$('.myClass').click(function() {
    if (clickCount == 0){
        alert('Part-2, run on 1st click only');
    }
    if (clickCount >= 1){
        alert('Part-3, run on 2nd and any furthur clicking');
    }

    clickCount++;
});

0 голосов
/ 29 марта 2020

Я не могу действительно получить то, чего вы пытаетесь достичь, но вот код, который делает именно то, что вы описали:

jQuery(document).ready(function($) {
    $('.myClass').toggle();
    alert('Part-1, runs once only on page load');

    var isMyClassEverClicked = false;
    $('.myClass').click(function() {
        if (!isMyClassEverClicked) {
            $('.myClass').toggle();
            alert('Part-2, run on 1st click only');
            isMyClassEverClicked = true;
            return;
        }

        $('.myClass').toggle();
        alert('Part-3, run on 2nd and any furthur clicking');
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...