- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
每个位置的最大玩家人数是:
我已经到了这样的地步,我将点击一个曲棍球运动员,该名字将被添加到表单的输入字段中,但是如果您已经选择了两个守门员,即有一类 是-active
,然后点击其他两个未选中的玩家之一,默认为 is-inactive
strong> 最多是两个守门员。不幸的是,防守队员和前锋也是如此。
当 starredGoaltenders === maxGoaltenders
或 starredDefencemen === maxDefencemen
或 starredForwards === maxFowards
球员的名字 没有没有被选中的那个特定位置并且没有 is-active
类不应该被添加到表单中的任何输入。
function countSelected() {
$(".player").on("click", function(){
// Checks if the maximum number of players have been selected
// If so, return false and then do nothing
// If not, the class will toggle from `is-inactive` to `is-active`
if ($(this).find(".picked.is-inactive.full").length > 0) return false;
$(this).find(".picked").toggleClass("is-inactive is-active");
$(".player").removeClass("not-picked");
$(".player").not(":has(.is-active)").addClass("not-picked");
// Count the number of players with stars
var starredGoaltenders = $(".player--goalie").find(".picked.is-active").length;
var starredDefencemen = $(".player--defencemen").find(".picked.is-active").length;
var starredForwards = $(".player--forward").find(".picked.is-active").length;
console.log(starredGoaltenders, starredDefencemen, starredForwards);
// The number of starred players for each position cannot exceed the following numbers
var maxGoaltenders = 2;
var maxDefencemen = 6;
var maxFowards = 12;
// If the number of starred players hits its max, a class of `is-completed` is adding to the corresponding checkmark to indicate that the task has been completed
if (starredGoaltenders === maxGoaltenders) {
$(".checkmark--goalie").addClass("is-completed");
$(".player--goalie").find(".picked").addClass("full");
} else {
$(".checkmark--goalie").removeClass("is-completed");
$(".player--goalie").find(".picked.is-inactive").removeClass('full');
}
if (starredDefencemen === maxDefencemen) {
$(".checkmark--defencemen").addClass("is-completed");
$(".player--defencemen").find(".picked").addClass("full");
} else {
$(".checkmark--defencemen").removeClass("is-completed");
$(".player--defencemen").find(".picked.is-inactive").removeClass('full');
}
if (starredForwards === maxFowards) {
$(".checkmark--forward").addClass("is-completed");
$(".player--forward").find(".picked").addClass("full");
} else {
$(".checkmark--forward").removeClass("is-completed");
$(".player--forward").find(".picked.is-inactive").removeClass('full');
}
// If all the conditions are met show the submit vote button
if (starredGoaltenders === maxGoaltenders && starredDefencemen === maxDefencemen && starredForwards === maxFowards) {
$(".btn--submit").show();
$(".btn--submit").addClass("slideLeft");
} else{
$(".btn--submit").hide();
$(".btn--submit").removeClass("slideLeft");
}
});
} countSelected();
// Every time a player is clicked, note the name of the player
$(".player").on("click", function(){
var playerNames = [];
$("input:text").each(function(i, t) { playerNames.push(t.value) });
if ($(this).find("picked.is-active")) {
var playerName = $(this).find(".player__name").html();
var index = playerNames.indexOf(playerName);
if (index == -1) // Add player
$("input:text:eq(" + playerNames.indexOf("") + ")").val(playerName);
else // Remove player
$("input:text:eq(" + index + ")").val("");
} else {
$("input").val("");
}
});
<form id="form">
<input type="text" name="p1" id="p1">
<input type="text" name="p2" id="p2">
<input type="text" name="p3" id="p3">
<input type="text" name="p4" id="p4">
<input type="text" name="p5" id="p5">
<input type="text" name="p6" id="p6">
<input type="text" name="p7" id="p7">
<input type="text" name="p8" id="p8">
<input type="text" name="p9" id="p9">
<input type="text" name="p10" id="p10">
<input type="text" name="p11" id="p11">
<input type="text" name="p12" id="p12">
<input type="text" name="p13" id="p13">
<input type="text" name="p14" id="p14">
<input type="text" name="p15" id="p15">
<input type="text" name="p16" id="p16">
<input type="text" name="p17" id="p17">
<input type="text" name="p18" id="p18">
<input type="text" name="p19" id="p19">
<input type="text" name="p20" id="p20">
<button class="btn btn--submit" type="submit"><img src="src/img/ballot-alt.png" class="image--ballot">Submit Vote</button>
</form>
<div class="player player--forward year--2000 year--2010">
<div class="tooltip">
<p class="tooltip__name">Mark Stone</p>
<p class="tooltip__hometown"><span>Hometown:</span> Winnipeg, Man.</p>
<p class="tooltip__years"><span>Years Played:</span> 2008-2012</p>
<div class="tooltip__stats--inline">
<div class="stats__group stats--games">
<p class="stats__header">GP</p>
<p class="stats__number stats__number--games">232</p>
</div>
<div class="stats__group stats--goals">
<p class="stats__header">G</p>
<p class="stats__number stats__number--goals">106</p>
</div>
<div class="stats__group stats--assists">
<p class="stats__header">A</p>
<p class="stats__number stats__number--assists">190</p>
</div>
<div class="stats__group stats--points">
<p class="stats__header">Pts</p>
<p class="stats__number stats__number--points">296</p>
</div>
<div class="stats__group stats--penalties">
<p class="stats__header">Pim</p>
<p class="stats__number stats__number--penalties">102</p>
</div>
</div>
</div>
<div class="player__headshot player--mstone">
<div class="picked is-inactive"><i class="fa fa-star" aria-hidden="true"></i></div>
</div>
<p class="player__name">Mark Stone</p>
<p class="player__position">Forward</p>
</div>
最佳答案
解决此问题的最简单方法可能是每次有人点击播放器时都重新填充所有输入,而不是尝试填充每个输入一次。这意味着您可以将您的应用程序状态保存在一个简单、易于理解的数据结构中,该数据结构独立于您的 DOM/UI,而不是每次发生新情况时都必须查阅 DOM。
我可能会这样写。
var players = [
{name: 'Ovechkin', type: 'F'},
{name: 'Dubnyk', type: 'G'}
// your complete player list goes here
],
selectedPlayers: []; // these are the players the user has chosen
var getCurrentPlayerCount = function (playerType) {
// return the number of players currently selected of one type
return selectedPlayers.reduce(function (count, player) {
if (player.type === playerType) return count + 1;
return count;
}, 0);
}
var selectPlayer = function (player) {
// You call this when someone clicks on a player
var currentForwardCount = getCurrentPlayerCount('F')
currentDefenceCount = getCurrentPlayerCount('D'),
currentGoalieCount = getCurrentPlayerCount('G');
// Do nothing (or show a UI message) if someone goes over their
// player-type limit
if (player.type === 'F' && currentForwardCount > 12) return;
if (player.type === 'D' && currentDefenceCount > 6) return;
if (player.type === 'G' && currentGoalieCount > 2) return;
// If you get here, it means the player can be added, so add
// it to the user's list
selectedPlayers.push(player);
updateUI();
}
我不包括 updateUI
在这里。你可以自己解决。
如果您需要支持 IE 8 或任何其他不支持 Array.prototype.reduce
的浏览器,您需要以不同的方式执行 getCurrentPlayerCount
。
关于javascript - if 语句将具有 `is-inactive` 类的玩家添加到输入的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197664/
我基于Symfony2 security documentation设置了应用程序的身份验证系统。 我的每个用户都有一个active标志。我不希望active = false的用户能够登录。 我真的不
我正在以只读方式使用旧式数据库。我有一个用户域,其中包括用户是否处于 Activity 状态的标志。当调用诸如findAll之类的搜索方法时,有没有办法总是忽略不 Activity 的用户而不将其从数
我想随时捕捉关键事件,即使我的应用程序不在焦点上。例如,当焦点位于其他应用程序时,我的应用程序应该检测 Ctrl+SPACE 组合键,并应做出相应的响应。谢谢 最佳答案 这是特定于操作系统的,不在 J
我在哪里 选择曲棍球运动员后,将其默认的 is-inactive 类别切换为 is-active 来表示。我还添加了 full 类,以防止选择 picked.is-inactive 类的玩家。 问题
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit th
我正在创建一个网站(显然是初学者),出于某种原因,在我的一个页面上,页 footer 分比预期的要长得多。它很奇怪,因为在其他页面上,它看起来很好。我在新页面上使用了完全相同的代码,但页脚完全不正常。
我有 WinForms 应用程序,我在其中使用以下帖子中的代码来检查我的应用程序的非事件状态(请参阅帖子中已接受的答案)。 InActivity In WinForms .一旦应用程序达到不活动状态,
Korbel 先生非常感谢您 我在 JPanel 上有一个鼠标监听器,它工作正常。我正在尝试向 JLabel 添加一些翻转支持,但是当我将鼠标监听器添加到 JLabel 时,JPanel 的鼠标监听器
我有 2 个表: 用户 编号 |姓名 |邮件 |通过 |盐 条目 编号 | uid |标题 |文字 |时间戳 现在我想删除所有带有 uid 的 entries 行,它在 user 表中不存在(删除用户
问题 每个位置的最大玩家人数是: 4 个守门员中有 2 个 15 名防守队员中有 6 名 31 名前锋中有 12 名 我已经到了这样的地步,我将点击一个曲棍球运动员,该名字将被添加到表单的输入字段中,
我有一个餐厅控制面板,它会在下订单时播放提示音。问题是,当控制面板选项卡不是 Chrome 中的事件选项卡时(对于 Firefox 也是如此),警报声音不会播放。单击选项卡后,它会播放声音。 我看到一
目标 在每个类别中选择了最大数量的球员(两名守门员、六名防守队员、十二名前锋)后,剩余球员 picked同类is-inactive应该设置为 cursor:default 问题的澄清 所有玩家都有类
错误 我的场景 首先我知道这个错误消息是 CSRF/ session 错误消息,没关系;事实上它的行为符合预期。由于我的应用程序的特定原因,我这样做是为了访问帐户,我发送一个发布请求并根据该响应数据构
我使用 Firebase 只是为了分析。我昨天成功实现了 Firebase。事实上,我没有收到任何运行时错误,但我在 Logcat 中注意到了。 2-3 秒后,Logcat 中会显示此消息。 V/FA
我对 iPhone 开发还很陌生。我有我的“根” View ,它正在实现 - (void)accelerometer:(UIAccelerometer *)accelerometer didAccel
我有一个相当长的 div 列表,我试图将其用作可放置的 - 但我想隐藏所有不接受当前可拖动元素的可放置。 我在 http://jsfiddle.net/N3uh3/ 上举了一个例子 基本上,如果我拖动
我的屏幕类似于: 我想删除 tableView 中最后一个“事件”单元格下方的分隔符(在本例中为“Kompozytorzy”下方的所有内容)。如何删除此分隔符? 我尝试在 cellForRow:AtI
这个问题在这里已经有了答案: V/FA: Processing queued up service tasks: 1 followed by V/FA: Inactivity, disconnecti
我有一项服务将永远运行,无论是否有客户端访问该服务,但在很长一段时间没有客户端事件之后,才能与客户端连接。 这是因为,例如,在假期过后,我希望能够连接到服务,而无需手动重新启动服务。 目前,如果10分
我在 Urban Airship 上收到以下错误消息。 Apple Push service rejected device token 38A69702F555A3B17F73FB4DB8
我是一名优秀的程序员,十分优秀!