slide.js 4日目

だめだ・・・うまくいかねーすorz
getElementsByTagNameとかgetElementByIdしたのをinnnerHTMLできないのはわかったんだけど、
「発見した!」と思ったappendChildでもうまくいかない。
階層があるDOM ElementはappendChildできない?
ヽ(`Д´)ノウワァァァン


あと、今日はIDEを使い始めた。
採用したのはAptana
Railsに対応しているのと、コード補完時に対応ブラウザが出るから。
eclipseベースだから慣れた環境で使いやすい。

slide.js

/*
 * slide.js
 * @version:	2007/05/06
 * @author:	futa23
*/

// Slide class
function Slide() {
    this.initialize.apply(this, arguments);
}

Slide.prototype.initialize = function() {
	this.main;
	this.contents = new Array();	
	this.page = 0;
};

Slide.prototype.start = function(){
	//load slide base element
	this.main = document.getElementById('main');
	
	document.getElementById('startBtn').disabled = true;

	var divPages = document.getElementsByTagName('div');
	for (var i=0; i<divPages.length ; i++) {
		if (divPages[i].className == 'page') {
			this.contents.push(divPages[i]);
			divPages[i].innerHTML = '';
		}
	}
};

Slide.prototype.next = function() {
//	if(!main) this.main = document.getElementById('main');
//	alert(this.contents.length);
	if (this.page < this.contents.length) {
		
		//うまくいかねーす
		this.main.appendChild(this.contents[this.page++]);
		
		//last action
		if (this.page == this.contents.length) {
			document.getElementById('nextBtn').disabled = true;
		}
	}
}

Slide.prototype.quit = function() {
	if (typeof(this.main) != 'undefined') {
		for(var i=0; i<this.contents.length; i++) {
			//うまくいかねーす
			this.main.appendChild(this.contents[i]);
		}
	}
}

//app
var slide = new Slide();

呼び出すHTML側

変更なし。