prototype DOM элементов
3драсти, подскажите пожалуйста есть ли у дом элементов прототип и как к нему добраться, хочу добавить свои методы например в дом объект таблицы. Например делаю так:
var table = document.querySelector('TABLE');
А как дальше? |
<script>
Object.defineProperty(Element.prototype, 'fadeOut', {
enumerable: false,
value: function() {
this.style.opacity = window.getComputedStyle(this).opacity;
(function(){
(this.opacity-=.05) < 0 ? this.display = "none": setTimeout(arguments.callee.bind(this), 100)}
).call(this.style)
}
});
</script>
<button onclick="this.fadeOut()">Нажми меня</button>
Старые IE в пролете. |
это что такое?
|
Цитата:
Ты ведь вчера спрашивал про то, есть ли у DOM-элементов прототип и как его изменять. |
ааа вспомнил...:)
нет я просто ожидал увидеть нечто привычное...DOMelem.prototype.method...т ипо такого, а тут на css что то замешано не сразу понял, чтож буду разбираться, спасибо за ответ. |
Можно конечно и Element.prototype.myMethod = function(){} безусловно. Просто Object.defineProperty позволяет выставить флаг enumerable = false.
А css тут для примера. В данном случае я продемонстрировал fadeOut. Вообще, не стоит изменять прототипы встроенных объектов. Обычно это делается только в костылях (polyfills) для исправления косяков браузеров. |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 05:42. |