document.addEventListener ("щелчок") не работает должным образом - PullRequest
0 голосов
/ 18 июня 2020
<button type="button" data-ab-testing="{{ settings.enabletest }}" class="Cart__Checkout Button Button--primary Button--full">
    <span>{{- 'cart.general.checkout' | t -}}</span>
    <span class="Button__SeparatorDot"></span>
    <span data-money-convertible>{{ cart.total_price | money_with_currency }}</span>
</button>

Вот кнопка покупки. Это похоже на обычную кнопку с добавлением некоторых дополнительных вещей, чтобы сделать ее динамической c для шаблонных целей. По какой-то причине Javascript ниже не работает с кнопкой.

  var addToCartButton = document.querySelector("[data-ab-testing]");
  console.log(addToCartButton);
  var cartForm = document.querySelector(".Drawer__Content");
  addToCartButton.addEventListener("click", function(e) {
    if (addToCartButton.dataset.abTesting === "true") {
      console.log("true");
    }
  }, false);

Предполагая, что dataset.abTesting === "true" уже был проверен (и даже полностью удален, чтобы узнать, была ли это проблема), есть ли причина, по которой это не сработает? Я даже подтвердил, что прослушиватель событий действительно прикреплен к событию. Google Chrome был проблемой c за последние пару дней как разработчик, и мне интересно, действует ли его Chrome каким-то образом. Версия этого кода проработала на моем сверстнике пару дней go, и я в полном проигрыше. Я попытался добавить e и e.preventDefault(), а также удалить последнее false в прослушивателе событий. Я собираюсь назвать функцию и добавить ее непосредственно к кнопке (onclick="funcName"), но даже за пределами того факта, что я не хочу это делать, мне также любопытно, почему это не работает правильно.

1 Ответ

1 голос
/ 18 июня 2020

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

Этот вопрос о переполнении стека относится к делегированию и всплытию событий, это может быть тем, на что стоит взглянуть. Дайте мне знать, если это не сработает.

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