Jquery обнаруживает событие только по клику - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу добавить некоторый код после того, как событие jQuery произошло в форме только после события щелчка.Событие также вызывается, когда происходят другие события.

Если я использую этот код, он обнаруживает вызываемое событие:

      $( ".grouped_form" ).on("wc_variation_form", function() {
        alert("triggered");
      });

Лучшее решение, которое мне удалось найти, этоэто, но это не работает:

$( ".grouped_form" ).on("click", function() {
      $(this).on("wc_variation_form", function() {
        alert("triggered");
      });
    });

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

Ответы [ 3 ]

0 голосов
/ 22 сентября 2018

Попробуйте следующую модификацию и Tellme, если работает с ожидаемым:

$(".grouped_form").on("click", function() {
    $(this).one("wc_variation_form", function() {
        alert("triggered");
    });
});

Он зарегистрирует прослушиватель события "wc_variaton_form" только один раз после того, как происходят события щелчка.

0 голосов
/ 23 сентября 2018

Я решил эту проблему, но ответы помогли мне понять, в чем проблема.После наступления события click некоторые части страницы обновляются, и событие click не связано с другими событиями.Решение состоит в том, чтобы сохранить переменную в событии click, а затем сбросить ее при следующем событии.

var clicked = localStorage['clicked'];

    $( ".grouped_form" ).on("click", function() {
      localStorage['clicked'] = "true";
  });

      $(".grouped_form").on("wc_variation_form", function() {
        if (clicked == "true") {
          localStorage['clicked'] = "false";
          alert("triggered");
      }
    });
0 голосов
/ 22 сентября 2018

$('.click').click(function(){
  $(this).addClass('clicked');
})

$('.trigger').click(function(){
  if($('.click').hasClass('clicked')){
    // Your codes
    console.log('triggered');
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Click thi button before trigger. otherwise you can not get a result.</div>
<button class="click">Click</button>
<div>Click this button for trigger the event</div>
<button class="trigger">Trigger</button>

Вы можете использовать методы jquery adaClass и hasClass для этого

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