Я хотел бы расширить интерфейс HTMLElement с помощью настраиваемого объекта в настраиваемом свойстве. Возможно ли это?Расширение интерфейса HTMLElement с классами
Это то, что я получил:
if (typeof HTMLElement.prototype.classList === "undefined") {
HTMLElement.prototype.classList = function ClassList() { return this.className.split(' '); };
HTMLElement.classList.prototype.add = function(name) {
if (classList.indexOf(name) !== -1) {
return;
}
classList[classList.length] = name;
this.className = classList.join(' ');
};
HTMLElement.classList.prototype.remove = function(name) {
var index = classList.indexOf(name);
if (index !== -1) {
this.className = classList.splice(index + 1, 1).join(' ');
}
}
}
Это должно дать вам хорошее представление о том, что мне нужно.
Я хочу реализовать свои собственные функции classList
для IE9. В IE это приведет к неопределенности и вызовет ошибку.
element.classList.add('fadeIn');
Есть ли простой способ реализовать это?
EDIT
Я играл вокруг с этим на некоторое время, но мои знания не достаточно хорошо еще, чтобы понять, что именно происходит. Мне еще нужно позвонить document.getElementById('whatever').classList()
, чтобы избежать получения «неопределенного». Я бы хотел, чтобы иметь возможность вызвать classList без брекетов (если браузер не поддерживает классList, конечно)
Вы проверяете 'classlist', но реализуете' classList'. Это не одно и то же. – Xufox
Правильно ... это была просто опечатка, исходный вопрос остается таковым :) – DerpyNerd