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, время: 09:36. |