私はフィドルを作りました:
私はコードをある程度まで理解しようとしています。同じ2つのアイテムが同時に表示されることはなく、1つのアイテムがクリックされたときに、同じアイテムが配列から引き戻されることはなく、少し苦労しているようです。ロジックとindexOfメソッドがおかしな動作をしています。
var justAdded = [];
justAdded['first'] = 0;
justAdded['second'] = 1;
newHtml = returnRandom().split('|');
justAdded[e.id] = parseInt(newHtml[0], 10);
if(justAdded.indexOf(parseInt(newHtml[0], 10)) == -1){
e.style.opacity = 0;
e.innerHTML = newHtml[1];
e.style.opacity = 1;
e.setAttribute('data-id', newHtml[0]);
} else {
uniq(clickedEl);
}
var returnRandom = function(){
return options[Math.floor(Math.random() * options.length)]
};
e.idは「first」または「second」と等しくなります。returnRandom()は、options配列からランダムな値を取得します。
var options = [
'0|Flash',
'1|Internet Explorer',
'2|Java',
'3|!important'
];