Начинающему программисту лучше пока оставить 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>