Статьи

Методы прототипного элемента более удобны

Поскольку мы недавно опубликовали статью Дэна Уэбба о библиотеке прототипов , имеет смысл продолжить отслеживать развитие библиотеки здесь, в этом блоге.

В библиотеке Prototype объект Elementдокументация ) предоставляет набор методов, которые работают с указанным элементом в документе. Вот список наиболее заметных методов из статьи:

 
var element = $('someId');

// Hides an element
Element.hide(element)
// Shows an element
Element.show(element)
// Adds a CSS class to the element
Element.addClassName(element, "cssClassName")
// Removes a CSS class from the element
Element.removeClassName(element, "cssClassName")
// Returns true if element has the CSS class
Element.hasClassName(element, "cssClassName")
// Returns {width: 123, height: 45}
Element.getDimensions(element)
// replaces the innerHTML of element with newHtml
Element.update(element, newHtml)

Для библиотеки, предназначенной для облегчения написания JavaScript, этот материал был довольно многословным. Но дизайнер / разработчик Джейсон Джастин У Палмера есть сведения о некоторых изменениях, которые находятся в стадии разработки. Вскоре вы сможете написать приведенные выше вызовы методов следующим образом:

 
var element = $('someId');

element.hide()
element.show()
element.addClassName("cssClassName")
element.removeClassName("cssClassName")
element.hasClassName("cssClassName")
element.getDimensions()
element.update(newHtml)

Удобная функция $Element То же самое касается методов $$getElementsByClassName

Подвох на этом этапе заключается в том, что ссылки на элементы, полученные другими способами (то есть с помощью стандартных коллекций / методов DOM), не будут улучшены таким образом, поэтому вам необходимо знать, какие ссылки на элементы были созданы Prototype, а какие являются стандартными. Ссылки DOM — значительный разрыв с традицией для Prototype. Фактически, даже некоторые ссылки на элементы, возвращаемые методами Prototype (например, Form.getElements

Разработчики, которые не заинтересованы в этих несоответствиях, могут захотеть придерживаться более подробного оригинального синтаксиса, но существует значительная экономия при наборе текста для тех разработчиков, которые интенсивно используют расширенные функции извлечения элементов в Prototype. Например:

 $('someId').show();

Эта новая функциональность дебютирует в следующем выпуске Prototype 1.5. В то же время, вы можете получить последнюю версию в процессе разработки от Rails, чтобы попробовать ее.