-
我试图从这个秒表的例子中学习。我希望能够通过单击此页面上未定义的另一个 html 元素来启动秒表。
-
如何在其他地方使用"开始"功能(例如页面重新加载等)?
var Stopwatch = function(elem, options) { var timer = createTimer(), startButton = createButton("start", start), offset, clock, interval; // append elements elem.appendChild(startButton); reset(); // private functions function createTimer() { return document.createElement("span"); } function createButton(action, handler) { var a = document.createElement("a"); a.href = "#" + action; a.innerHTML = action; a.addEventListener("click", function(event) { handler(); event.preventDefault(); }); return a; } function start() { if (!interval) { offset = Date.now(); interval = setInterval(update, options.delay); } } // public API this.start = start; }; var d = document.getElementById("d-timer"); dTimer = new Stopwatch(d, {delay: 1000}); dTimer.start();
Q1: 如何在其他地方调用启动函数?全球?
如果"未在此页面上定义"是指HTML文档中的浏览器页面,那么这是不可能的。一旦切换页面(甚至重新加载页面),代码就会在不同的上下文中运行。
假设这是您想要的,您可以通过不实际离开页面,而是加载另一个页面并替换当前页面内容来解决此问题。
如果不离开页面,则 dTimer 对象应可全局访问。
您可以通过执行以下操作将其分配给窗口范围:
window.functionName = function(){
//your code here
}
问题实际上是拼写错误的"id"值。
当然,正如Matias所建议的那样,详细研究javascript会有所帮助。