jQuery 存储上次点击的数据变量

jQuery Store data variable from previous click

我有一个点击功能,当用户在我的游戏中按下 'player' 时会出现该功能。我正在尝试编写两个玩家之间的替换代码。该函数首先检查是否已经选择了另一名球员,如果是,则检查他们是否在替补席上。如果他们在板凳上,那么它会存储第二个球员的数据信息。

问题在于存储第一个玩家数据信息。当我警告 'pid' 时,它显示为未定义。是否有存储 pid 的方法,以便下次用户点击另一个播放器时,存储在 'pid' 下的信息仍然存在?我意识到 'pid' 是在函数内声明的,我尝试先在函数外声明它,但这仍然不起作用。

var pid;

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

    event.preventDefault();

    var start = $(this).data("start");

    if ($(".show2")[0]){
      // Player has already been selected

      if ($(this).children('.show2').length) {
        // User has selected same player, toggle off select image and return

        $(this).children('.player-select').toggleClass('show2');
        return;
      }

      if(start == 'FirstEleven'){
        $(".message-alert").css("display", "block");
        $(".message").html('You must substitute a player from the bench');
        $(".overlay2").css("opacity", "0.5");
        $(".overlay2").css("display", "block");
        $(".container2").css("pointer-events", "all");
      }

      if(start == "Bench"){
        var pid2 = $(this).data("id");
        var element2 = $(this).data("element");

        alert(pid);
        alert(pid2);
      }

    } else {
      // First player to be selected

      if(start == 'Bench'){
        // If player selected is on the bench
        $(".message-alert").css("display", "block");
        $(".message").html('You must select a player from the starting lineup first');
        $(".overlay2").css("opacity", "0.5");
        $(".overlay2").css("display", "block");
        $(".container2").css("pointer-events", "all");
        return;
      }

      $(this).children('.player-select').toggleClass('show2');

      var pid = $(this).data("id");
      var element = $(this).data("element");

    }

  });

对于这种用例,您可以使用 sessionStorage。一旦 windows 关闭,它将是干净的。或者你可以清理 programmatically.

sessionStorage.setItem("players1", "deepak")

console.log(sessionStorage.getItem("players1"))