我正在建立纸牌游戏。当用户点击卡片时,卡片会淡出。然而,目前,存在严重的错误。用户可以多次单击一张卡,将多个卡号添加到阵列中(基本上可以选择大量的卡)。
我该如何解决这个问题?到目前为止,这是我的代码:
$(clicked_id).fadeOut('fast');
任何帮助将不胜感激!
编辑:整个代码:
<script>
var cardsPicked = new Array;
var suits = ["♥", "♦", "♣", "♠"];
var king = 0;
var numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
var cardRules = ["Waterfall", "You", "Me", "Girls", "Thumbmaster", "Guys", "Heaven", "Mate", "Rhyme", "Catagories", "Make a rule", "Question master", "Pour your drink!"];
var currentId;
function getCard(clicked_id) {
clicked_id = "#" + clicked_id;
$(clicked_id).fadeOut('fast');
var newCard = Math.floor((Math.random() * 13) + 1);
var newSuit = Math.floor((Math.random() * 4) + 1);
var currentCard;
var x = document.getElementById("pick");
var rules = document.getElementById("rules");
var kings = document.getElementById("kings");
var currentCards = document.getElementById("currentCard");
if (cardsPicked.indexOf(numbers[newCard - 1] + " " + suits[newSuit - 1]) == -1) {
if (numbers[newCard - 1] == "K" && king < 4) {
king = king + 1;
}
if (king == 4) {
king = "All kings found!";
alert("Fourth king picked. Down the jug!");
}
cardsPicked.push(numbers[newCard - 1] + " " + suits[newSuit - 1]);
for (count = 0; count < cardsPicked.length; count++)
currentRule = cardRules[newCard - 1];
x.innerHTML = cardsPicked;
currentCards.innerHTML = numbers[newCard - 1] + " " + suits[newSuit - 1];
rules.innerHTML = currentRule;
kings.innerHTML = king;
} else {
getCard();
}
}
答案 0 :(得分:2)
试试这个
$(clicked_id).off().fadeOut('fast');
如果内联onclick
调用该事件:
$(clicked_id).prop("onclick", "").off().fadeOut('fast');
答案 1 :(得分:0)
首先应删除元素上的click事件,然后使用将重新附加click事件的回调函数执行淡出效果。
$('#clicked_id').off('click').fadeOut('fast', function () {
$('#clicked_id').on('click');
});
这是完全未经测试的,只是一个理论,但它可能有用!