Why does the following not produce a slideshow? It goes through img1_write twice and never again as best I can tell.
class Greeter { element: HTMLElement; span: HTMLElement; timerToken: number; constructor(element: HTMLElement) { this.element = element; this.element.innerHTML += "The time is: "; this.span = document.createElement('span'); this.element.appendChild(this.span); this.span.innerText = new Date().toUTCString(); } start() { this.timerToken = setInterval(() => this.span.innerHTML = new Date().toUTCString(), 500); } stop() { clearTimeout(this.timerToken); } } window.onload = () => { var el = document.getElementById('content'); var greeter = new Greeter(el); greeter.start(); var e2 = document.getElementById('img1'); var ssimg1 = new slideshow(e2); ssimg1.img1_start(); }; class slideshow { _index: number; _img1_element: HTMLElement _img1_count: number; _asfiles: Array<string>; _tmrtkn: number; constructor( img1_element: HTMLElement) { this._asfiles = ['src="img1/IMGP0675.jpg" width="1024" height="684"', 'src="img1/IMGP1094.jpg" width = "1024" height ="684"']; this._img1_element = img1_element; this._img1_count = 0; this.img1_write(); } img1_write() { this._img1_count = this._img1_count + 1; this._index = this._img1_count % this._asfiles.length this._img1_element.innerHTML = "<img alt=xmess " + this._asfiles[this._index] + "\>"; // document. } img1_start() { this._tmrtkn = setInterval(this.img1_write(), 3000);} img1_stop() { clearTimeout(this._tmrtkn);} };