онклик нужно дважды щелкнуть - PullRequest
0 голосов
/ 27 мая 2018

При использовании onclick в JavaScript для вызова функции nowClicked() мне нужно дважды щелкнуть объект, чтобы отобразить предупреждение.Ниже приведен код моей функции.

function nowClicked() {

  $('.object').click(function() {

    $('.object').removeClass("clicked");
    var myClass = $(this).attr("id");
    alert(myClass);

    $(this).addClass("clicked");

    e.stopImmediatePropagation();

  });
};

В чем проблема?

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Нет необходимости помещать ее в другую функцию, потому что click сама обрабатывает функцию обратного вызова. Удалите внешнюю функцию nowClicked, в противном случае удалите $('.object').click(function() {. Во втором случае вы можете передать context в качестве аргумента функции.

$('.object').click(function() {
  $('.object').removeClass("clicked");
  var myClass = $(this).attr("id");
  alert(myClass);
  $(this).addClass("clicked");
  e.stopImmediatePropagation();
});
0 голосов
/ 27 мая 2018

Вот что происходит при первом нажатии вашей кнопки:

  1. nowClicked вызывается, потому что вы установили его на кнопке onclick
  2. nowClickedустанавливает обработчик щелчков jQuery для .object

Код внутри обработчик щелчков jQuery запускает только следующий при нажатии кнопки.

Похоже, вы смешиваете два способа обработки кликов - один использует событие onclick, а второй - jQuery.Вам нужно выбрать один и придерживаться его вместо того, чтобы использовать оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...