我正在尝试从这个秒表示例中学习。我希望能够通过点击此页面上未定义的其他html元素来启动秒表。
如何使用' start'其他地方的功能(例如页面重新加载等)?
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:我怎样才能在其他地方调用启动功能?全球?
答案 0 :(得分:1)
您可以通过执行以下操作将其指定给窗口范围:
window.functionName = function(){
//your code here
}
答案 1 :(得分:1)
如果“未在此页面上定义”是指HTML文档中的浏览器页面,那么这是不可能的。只要您切换页面(甚至重新加载页面),代码就会在不同的上下文中运行。
假设这是你想要的,你可以通过不实际离开页面来解决这个问题,而是加载另一个页面并替换当前页面内容。
如果您不离开页面,您的dTimer对象应该可以全局访问。
答案 2 :(得分:0)
这个问题实际上是拼写错误的" id"值。
当然,正如Matias所建议的那样,详细研究javascript会很有帮助。