我有以下功能:
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
吗?
如果是这样,它必须包装整个功能?
谢谢!
答案 0 :(得分:2)
将这些东西作为参数传递给函数怎么样?而且,也许不是将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");
&#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();
}
});