gpt4 book ai didi

javascript - 输入按钮 onclick 事件未触发

转载 作者:行者123 更新时间:2023-11-28 02:30:39 24 4
gpt4 key购买 nike

我对 JavaScript 相当陌生,正在尝试构建一个简单的照片查看器、幻灯片应用程序。我可能在代码中存在我还不知道的错误/错误做法。幻灯片按钮上的事件触发,我可以在控制台中看到输出,但是随机幻灯片按钮上的事件不会触发。

HTML5 片段

<form>
<div id="controls">
<input type="button" id="slideshow" value="Slide Show" />
<input type="button" id="randomSlideshow" value="Random Slide Show" />
</div>
</form>
<script src="js/PhotoViewer.js"></script>
</body>

JS 片段

var photosArrayGlobal = new Array();
var photoIndexGlobal = 0;
var displayGlobal;

window.onload = main;

function main() {
"use strict";
document.getElementById("slideshow").onclick = getArrayPhotosNames;

document.getElementById("randomSlideshow").onclick = randomize(photosArrayGlobal);

displayGlobal = document.getElementById("myImage");

document.getElementById("nextSlide").onclick = function () {
displayGlobal.setAttribute("src", photosArrayGlobal[1]); //Test value, image 2
};
}

function getArrayPhotosNames() {
var folderName = document.getElementById("photoFolder").value;
var commonName = document.getElementById("commonName").value;
var startNum = document.getElementById("startNum").value;
var endNum = document.getElementById("endNum").value;
var j = 0;

if (startNum > endNum) {
alert("Invalid Numbers");
}

var nameArray = new Array();

for (var i = startNum; i <= endNum; i++) {
nameArray[j] = folderName + commonName + i + ".jpg";
j++;
}

photosArrayGlobal = nameArray.slice();
console.log(photosArrayGlobal);

return nameArray;
}

function randomize(dataArray) {
var i = dataArray.length;
var j, tempi, tempj;
if (i === 0) {
return false;
}

while (--i) {
j = Math.floor(Math.random() * (i + 1));
tempi = dataArray[i];
tempj = dataArray[j];
dataArray[i] = tempj;
dataArray[j] = tempi;
}
console.log(dataArray);

}

最佳答案

onclick 处理程序需要一个函数,但您向其传递从 randomize() 函数返回的值(该值恰好是 undefined)。将其更改为以下内容:

document.getElementById("randomSlideshow").onclick = function() {
randomize(photosArrayGlobal);
};

关于javascript - 输入按钮 onclick 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com