Поскольку мы недавно опубликовали статью Дэна Уэбба о библиотеке прототипов , имеет смысл продолжить отслеживать развитие библиотеки здесь, в этом блоге.
В библиотеке 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, чтобы попробовать ее.