将javascript函数中的addClass更改为调用两次

Changing the addClass in a javascript function to be called twice

本文关键字:调用 两次 函数 javascript addClass      更新时间:2023-09-26

我有下面的函数:

var players = function(){
  var $div = $('<div>').attr('id', 'prompt');
  var $input = $('<input>').attr('class', 'player' + playerNames);
  var $p = $('<p>').attr('class', 'player' + playerNames).html("Enter First Player" );
  $div.append($input).append($p);
  $('.container').append($div);
  $('input').keydown(function(e) { 
    if(e.keyCode === 13) {
      $div.addClass('move-left').removeAttr('id');
      playerOne = $input.val();
      $p.html($input.val())
      $input.remove();
    }
  });
}

我想在一行中调用这个函数两次。

我希望.addClass('move-left')addClass('move-right') playerNames, starts at 0 to be 1,最后为"Enter First Player"是"Enter Second Player"。

我需要for吗?如果是这样,它是否必须包装整个函数?

谢谢!

如何将这些东西作为参数传递给函数?并且,也许不是关闭playerOne,而是创建一个您声明并返回

的局部变量。

var players = function(promptStr, classStr){
  var $div = $('<div>').attr('id', 'prompt');
  var $input = $('<input>').attr('class', 'player' + playerNames);
  var $p = $('<p>').attr('class', 'player' + playerNames).html(promptStr );
  $div.append($input).append($p);
  $('.container').append($div);
  var playerX = {name:null};
  $('input').keydown(function(e) { 
    if(e.keyCode === 13) {
      $div.addClass(classStr).removeAttr('id');
      playerX.name = $input.val();
      $p.html($input.val())
      $input.remove();
    }
  });
 
  return playerX;
}
var playerOne = players("Ready Player One", "move-left");
var playerTwo = players("Enter Player Two", "move-right");

使用if语句

 $('input').keydown(function(e) { 
    if(e.keyCode === 13) {
        if ($div.hasClass('move-left') {
            $div.addClass('move-right').removeAttr('id');
        } else {
            $div.addClass('move-left').removeAttr('id');
        }
        playerOne = $input.val();
        $p.html($input.val())
        $input.remove();
    }
  });