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

时间:2015-09-30 20:44:08

标签: 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" );
  $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')个玩家姓名starts at 0 to be 1,最后为“输入第一个玩家”为“输入第二个玩家”。

我需要for吗? 如果是这样,它必须包装整个功能

谢谢!

2 个答案:

答案 0 :(得分:2)

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

&#13;
&#13;
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");
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用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();
    }
  });