Неудобно, но обёртка ещё хуже тем, что надо помнить, какие методы нативные, а какие кастомные. Или же реализовывать кастомный алиас для каждого нативного метода. Все три способа хреновые, я выбрал для себя меньшее из зол.
Лучший вариант -- расширение прототипа -- недоступен в IE. |
Цитата:
|
В прямом. У DOM элементов в IE нет прототипов.
|
Цитата:
Однако в IE8 можно уже и так: //Element.getElementsByClassName IE8+ function getElementsByClass(getClass){ if(document.querySelectorAll) { return document.querySelectorAll("." + getClass); } else if(document.getElementsByClassName) { return document.getElementsByClassName(getClass); } else { var list = document.getElementsByTagName('*'), i = list.length, classArray = getClass.split(/\s+/), result = []; while(i--) { if(list[i].className.search('\\b' + classArray + '\\b') != -1) { result.push(list[i]); } } return result; } }; HTMLDocument.prototype.getElementsByClassName = Element.prototype.getElementsByClassName = getElementsByClass; оффтоп вообще интересно что Node.ELEMENT_NODE/Node.TEXT_NODE в IE9 по прежнему не определяются, зато 10-ю очень хорошо расширили (только что проверил там есть поддержка!) |
var newOffset= getElementOffset('#xxx') + 10
setElementOffset( '#xxx', new Offset ) -- vs -- var el= $('#xxx') var newOffset= el.offset() + 10 el.offset( newOffset ) === не задалбывает каждой функции передавать элемент первым параметром? |
monolithed, а для ие7- можно задать одноразовый экспрешн, который добавит нужные методы при добавлении элемента в дом.
|
Цитата:
|
Цитата:
Цитата:
http://blogs.msdn.com/b/ie/archive/2...-download.aspx по-моему они решили запомниться этими рыбками. И, кстати, быстро у них появилось preview следующей версии Цитата:
Цитата:
|
Цитата:
Проблема: добавить методы для работы с DOM-элементами. Хорошее решение: расширение прототипа. Не будь IE, проблем бы не было. Есть три удовлетворительных решения: 1. Обёртка (jQuery, ExtJS). 2. Добавление методов прямо в DOM-элементы (PrototypeJS, раньше по крайней мере). 3. Обычные функции, принимающие первым аргументом DOM-элемент. Я для себя выбрал третий вариант. Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 22:53. |