Как вызывать разные JS функции при разных нажатиях кнопки? - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь вызвать функцию JS, которая запускает всплывающее окно при первом нажатии кнопки после загрузки страницы. А затем другая функция при втором щелчке, я понятия не имею, как это сделать, и все, что я нашел на ней, было трудно адаптировать.

Это всплывающее окно: https://jsfiddle.net/d80tcw5f/

Ниже приведен элемент для текущей кнопки.

    <a ng-class="{true : 'cart-checkout-button disabled', false : 'cart-checkout-button'}[data.DisableCheckout]" ng-click="PlcaOrder()" >
                                        <span class="payment-label">{{data.PlaceOrderText}}&nbsp;</span>
                             <span aria-hidden="true" class=" icon-arrow-right2"></span> </a>

«PlcaOrder ()» - это функция, которая перенаправляет на платежный шлюз, что мне нужно выполнить во второй щелкните.

Любая помощь будет принята с благодарностью, спасибо!

Ответы [ 5 ]

1 голос
/ 06 августа 2020

Для этого нужно создать третью функцию для маршрутизации

var func1 = ...;
var func2 = ...;

var func3 = function(e) {
  if (!this.firstClick) {
    this.firstClick = true;
    func1(e);
  } else {
    func2(e);
  }
}
0 голосов
/ 06 августа 2020

Стиль переключения.

var clicks = 0;

function clickSwitcher() {
  switch (clicks) {
    case 0:
      console.log("click0", "Do something!");
      break;
    case 1:
      console.log("click1", "Make a thing.");
      break;
    case 2:
      console.log("click2", "Drink!");
      break;
    case 3:
      console.log("click3", "Test the loop.");
      break;
    case 4:
      console.log("click4", "Sleep.");
      clicks = 0 //and restart
      break;
  }
  clicks++;
}
0 голосов
/ 06 августа 2020

Я бы сохранил количество кликов в переменной, а затем увеличивал бы это число каждый раз, когда нажимаете кнопку. Затем, в зависимости от номера переменной, что-нибудь сделайте. Пример:

let clicks = 0;

function myFunction() {
  clicks++;
  if (clicks === 1) {
    console.log("button clicked for the first time")
  } else {
    console.log("button clicked more than once")
  }
}
 <button onclick="myFunction()">Click me!</button> 
0 голосов
/ 06 августа 2020

Я не уверен, правильно ли я понял вашу точку зрения, но попробуйте что-то вроде установки логического значения для события щелчка. После того, как вы нажмете кнопку, установите для нее значение true, затем вызовите вторую функцию (установите вторую функцию, которая будет вызываться только в том случае, если ваше логическое значение имеет значение true). Затем после второго вызова функции сбросьте логическое значение обратно на false.

0 голосов
/ 06 августа 2020

В конце функции, которая вызывается при первом щелчке мыши, просто измените значение атрибута ng-click на вторую функцию, которую вы хотите вызвать, например, PlcaOrder ()

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