var imgs = ['bmw.jpg', 'bugatti.jpg', 'classic.jpg', 'concept.jpg', 'corvette.jpg', 'dino.jpg', 'lambo.jpg', 'mcclaren.jpg', 'p1.jpg', 'porsche.jpg', 'rally.jpg', 'audi.jpg'];
// var imgs_count = {'bmw.jpg': 0, 'bugatti.jpg': 0, 'classic.jpg': 0, 'concept.jpg': 0, 'corvette.jpg': 0, 'dino.jpg': 0, 'lambo.jpg': 0, 'mcclaren.jpg': 0, 'p1.jpg': 0, 'porsche.jpg': 0,'rally.jpg': 0, 'audi.jpg':0}
// for (var i in imgs_count) {
// imgs_count[i]
// }
var allCars = [];
var votes;
function Car(file) {
this.file = file;
this.votes = 0;
allCars.push(this);
}
var bmw = new Car('bmw.jpg');
var bugatti = new Car('bugatti.jpg');
var classic = new Car('classic.jpg');
var concept = new Car('concept.jpg');
var corvette = new Car('corvette.jpg');
var dino = new Car('dino.jpg');
var lambo = new Car('lambo.jpg');
var mcclaren = new Car('mcclaren.jpg');
var p1 = new Car('p1.jpg');
var porsche =new Car('porsche.jpg');
var rally = new Car('rally.jpg');
var audi = new Car('audi.jpg');
var idx1 = 0;
var idx2 = 0;
var path = 'cars/';
var done = false;
function getRandomImage() {
idx1 = Math.floor(Math.random()*imgs.length);
var img1 = imgs[idx1];
idx2 = idx1;
while (idx2 == idx1) {
idx2 = Math.floor(Math.random()*imgs.length);
}
img2 = imgs[idx2];
document.getElementById('choice1').setAttribute('src', path + img1);
document.getElementById('choice2').setAttribute('src', path + img2);
}
function setOnClicks(id) {
document.getElementById(id).addEventListener('click', function(event) {
var choice = event.target.id;
if (choice === 'choice1') {
console.log(allCars);
var img = document.getElementById(id).getAttribute('src');
var allCars = img.slice(5,img.length);
this.allCars[idx1].votes += 1;
console.log(idx1);
console.log(this.allCars[idx1].votes)
if (allCars[idx1].votes=3) {
done = true;
}
}
if (choice === 'choice2') {
var img = document.getElementById(id).getAttribute('src');
var allCars = img.slice(5,img.length);
console.log(idx2);
console.log(this.allCars[idx2].votes);
this.allCars[idx2].votes += 1;
if (allCars[idx2].votes == 3) {
done = true;
}
}
if (!done)
getRandomImage();
});
}
getRandomImage();
setOnClicks('choice1');
setOnClicks('choice2')l
0
A
回答
0
你跟你的覆蓋全球allCars
一個本地的var
聲明同名:
+0
錯誤非常感謝!得到它了 –
0
要創建下click事件的局部變量allCars
,而this.allCars
被點到allCars
變量下window
對象
var allCars = img.slice(5,img.length); // this is a local variable
this.allCars[idx1].votes += 1; // this is same as window.allCars
console.log(idx1);
相關問題
- 1. gluUnProject()爲什麼不行爲?
- 2. TokenMismatchException在VerifyCsrfToken.php行67 - Laravel 5.2
- 3. 爲什麼不運行--exec運行?
- 4. ErrorCsrfToken.php錯誤TokenMismatchException第67行:
- 5. 爲什麼行動不執行功能?
- 6. PHP爲什麼這隻輸出1行?
- 7. date.setHours(-1)的正確行爲是什麼?
- 8. 爲什麼這隻返回1行?
- 9. Toast.makeText(...)和toastObj.makeText(...)爲什麼運行不同?
- 10. 什麼是行高:1?
- 11. Java - 爲什麼不行?
- 12. 爲什麼不運行?
- 13. 爲什麼javascript不運行
- 14. pandas.read_excel爲什麼不運行?
- 15. 爲什麼這個不行
- 16. cron爲什麼不運行?
- 17. 爲什麼行不顯示?
- 18. 爲什麼spork不運行?
- 19. JavaScript:爲什麼不行?
- 20. 爲什麼「foo = foo || {};」不行?
- 21. 爲什麼不執行DispatchQueue.main.async?
- 22. 爲什麼不刷新行?
- 23. 爲什麼不執行.vimrc?
- 24. 爲什麼深度爲1的行添加到數組[1]
- 25. 令牌行號= 1,令牌行偏移= 56,令牌在錯誤=選擇
- 26. 將宏從1行擴展到56行。應用程序定義的錯誤
- 27. 爲什麼mojolicious行動不被稱爲?
- 28. ExpandoObject - 爲什麼Type的行爲不同?
- 29. cmd執行但python os.popen和subprocess.call和subprocess.popen和os.system不執行,爲什麼?
- 30. 爲什麼hide()的行爲不同?
我不能得到數組的投票,點擊圖片時添加+1。我得到'Uncaught TypeError'的回報:無法讀取'undefined'屬性'11'或類似的東西,就像在我的'allCars'數組中找不到' –
問題(或至少是_a_問題)是'var allCars'和'this.allCars' _不是一回事。看到這裏的例子:http://jsfiddle.net/866yocrv/ – aroth
如果我刪除(這)它仍然顯示相同的問題 –