Сообщение от 23keks23
|
Но что если я хочу передать класс элемента, а этих элементов будет несколько
|
<div id="test"></div>
<div id="test2"></div>
<script>
function MyTest(tag) {
var self = this instanceof MyTest
? this
: Object.create(MyTest.prototype);
self.init.apply(self, arguments);
return self;
}
MyTest.prototype = {
init: function (tag) {
if (tag && typeof tag === 'string') {
var self = this;
this._element = document.querySelector(tag);
if (!this._element) {
throw Error("MyTest: element with this tag isn't found");
}
this._element.addEventListener('click', function () {
if(typeof self._callback === 'function') self._callback(self.value);
});
} else {
throw Error("MyTest: tag is not string");
}
},
get value() {
return this._value;
},
set value(value) {
this._value = value;
this._element.innerHTML = value;
},
onclick: function (callback) {
this._callback = callback;
}
};
// Используем
var foo = MyTest('#test');
foo.value = 555;
foo.onclick(function (value) {
alert(value);
});
var foo2 = MyTest('#test2');
foo2.value = 777;
foo2.onclick(function (value) {
alert(value);
});
</script>