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

将javascript函数中的addClass更改为调用两次,javascript,jquery,Javascript,Jquery,我有以下功能: 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" )

我有以下功能:

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();
    }
  });
}
var players=function(){
var$div=$('').attr('id','prompt');
变量$input=$('').attr('class','player'+playerNames);
var$p=$('').attr('class','player'+playerNames.html(“输入第一个播放器”);
$div.append($input).append($p);
$('.container')。追加($div);
$('input').keydown(函数(e){
如果(如keyCode===13){
$div.addClass('move-left').removeAttr('id');
playerne=$input.val();
$p.html($input.val())
$input.remove();
}
});
}
我想连续调用这个函数两次

我希望
.addClass('move-left')
addClass('move-right')
playerNames,从0开始的
是1
,最后的“输入第一名玩家”是“输入第二名玩家”

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

谢谢

带有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();
    }
  });

把这些东西作为参数传递给函数怎么样?并且,也许不需要关闭playerOne,而是创建一个声明并返回的局部变量

var players=function(promptStr,classStr){
var$div=$('').attr('id','prompt');
变量$input=$('').attr('class','player'+playerNames);
var$p=$('').attr('class','player'+playerNames.html(promptStr);
$div.append($input).append($p);
$('.container')。追加($div);
var playerX={name:null};
$('input').keydown(函数(e){
如果(如keyCode===13){
$div.addClass(classStr).removeAttr('id');
playerX.name=$input.val();
$p.html($input.val())
$input.remove();
}
});
返回playerX;
}
var playerOne=玩家(“准备好玩家1”,“向左移动”);

var playerTwo=玩家(“输入玩家二”,“向右移动”)你想做什么还不是很清楚。您能详细说明一下吗?使用
hasClass()
检查是否发生了
.addClass('move-left')
,然后检查是否发生了
addClass('move-right')
--编辑后,我不确定您在questionplayers函数的其余部分中所做的是什么,创建了一个div,该div接受用户的输入,然后向左转换。在这之后,我希望只在第二次用户输入后,div向右转换,然后再次重复这些过程。有没有不复制粘贴函数的方法?是的,抽象地创建它并向它传递变量。我犯了一个小错误,像那样返回playerX是行不通的。您可以将playerX设置为对象{player:null}并返回该对象,然后在keydown回调中设置playerX.player。现在代码同时创建了三个div,我想让两个div一个接一个地弹出。这就是我想弄明白的:)