Показать сообщение отдельно
  #2 (permalink)  
Старый 22.08.2011, 05:27
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Начинающему программисту лучше пока оставить jQuery в покое и начать читать:
http://dmitrysoshnikov.com/ecmascrip...eneral-theory/
http://dmitrysoshnikov.com/ecmascrip...mplementation/
ну и остальные статьи там и на этом сайте.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>…</title>
</head>
<body>
<div id="test-container"></div>
<script>
if (!Function.prototype.bind) {
	Function.prototype.bind = function (obj) {
		var args = Array.prototype.slice.call(arguments, 1), thisFunc = this;
		function wrap() {
			return thisFunc.apply(this instanceof wrap ? this : obj || window, args.concat(Array.prototype.slice.call(arguments)));    
		}
		return wrap;
	};
}

var common = {
	event: {
		add: function (element, eventType, listener) {
			var wrap;
			if ("addEventListener" in element) {
				element.addEventListener(eventType, listener, false);
			}
			else if ("attachEvent" in element) {
				wrap = function () {
					listener.call(element, window.event);
				}
				element.attachEvent("on" + eventType, wrap);
			}
			return wrap || listener;
		}
	}
};

function MyObj(node) {
	this._container = node;
	this.render();
}

MyObj.prototype = {

	constructor: MyObj,

	buttonCaption: "Text",
	message: "Ok",
	eventType: "click",

	_container: null,
	_button: null,

	render: function () {
		this.addButton();
		this.initEvents();
	},

	addButton: function () {
		var btn = document.createElement("input");
		btn.type = "button";
		btn.value = this.buttonCaption;
		this._container.appendChild(btn);
		this._button = btn;
	},

	initEvents: function () {
		common.event.add(this._button, this.eventType, this.showMessage.bind(this));
	},

	showMessage: function () {
		alert(this.message);
	}
};

new MyObj(document.getElementById("test-container"));

</script>
</body>
</html>
Ответить с цитированием