������� ������� ������. �������� ������������� �����.
������ �����-�������� Prototype 1.6.0 ������� ������! core team ���������� �������� ����������������� ���������� API ���� � ����������� ���������� ������������������ � ����������� ������. ��������� ������, ����� ������ ����� ��������� ��������� � ���� ������ ������, ��� ������ ���������� ������ ����� ������������� � ��� ���������������.
���������� Event API
�� ������� 1.6.0 ������� "������������� �������" ������ �������, � ��� ����� ������������ ������ - ���� �� ����� ����� ������ API ����� ����� �� ����� ������. ���, ����������, ��� ���� ��������:
<div id="container">
<h1><span id="title">Release notes</span></h1>
...
</div>
$("container").observe("titleChanged", function(event) {
this.highlight({ duration: 0.5 });
});
$("title").fire("titleChanged");
document.observe ("contentloaded", function(){ ... })
String.prototype.capitalize = String.prototype.capitalize.wrap(
function(proceed, eachWord) {
if (eachWord && this.include(" ")) {
// capitalize each word in the string
return this.split(" ").invoke("capitalize").join(" ");
} else {
// proceed using the original function
return proceed();
}
});
"hello world".capitalize() // "Hello world"
"hello world".capitalize(true) // "Hello World"
��� ����� ������������ �������, �������� ��� ����� �������� jQuery-����� ������� ��������� ���������. ($$(�div.widget�).show().highlight()) ����� �� 40 ����� ���� ������� ��� $$ � Element.addMethods.function sum(a, b) {
return a + b;
}
sum(10, 5) // 15
var addTen = sum.curry(10);
addTen(5) // 15
function addBorder(element, color) {
return $(element).setStyle({
border: "3px solid " + (color || "red")
});
}
addBorder("sidebar", "#ddd");
$("sidebar").addBorder = addBorder.methodize();
$("sidebar").addBorder("#888");
Prototype ���������� ���������� methodize ������; ��� �������, ������ Math ������ ��������� � ����������� Number:
$w("abs round ceil floor").each(function(method) {
Number.prototype[method] = Math[method].methodize();
});
// �������� ����� "busy" ����� ���� �������
(function() { $("form").addClassName("busy") }).delay(1);
// ������� ������� "requestSent" ����������
(function() { $("form").fire("requestSent") }).defer();
var Animal = Class.create({
initialize: function(name) {
this.name = name;
},
eat: function() {
return this.say("Yum!");
},
say: function(message) {
return this.name + ": " + message;
}
});
// subclass that augments a method
var Cat = Class.create(Animal, {
eat: function($super, food) {
if (food instanceof Mouse) return $super();
else return this.say("Yuk! I only eat mice.");
}
});
new Ajax.Request("/people/5.json", { // >> GET /people/5.json HTTP/1.1
onSuccess: function(transport) { // << Content-type: application/json
var person = transport.responseJSON; // << { id: 5, name: "Tobie Langel",
person.city // "Geneva" // << city: "Geneva", ... }
...
}, method: "get"
});
new Element("input", { name: "user", disabled: true });
//-> <input name="user" disabled="disabled" />
DOM ����������� ���������� Element#writeAttribute, ������ ����� ���������� � DOM API, ������� �������� ���������� �������� �������� � �����-���������� ����.
$("items").insert({ after: new Element("p") });
$("items").insert({ top: "<li>an item</li>" });
$("items").insert("<li>another item</li>"); // defaults to bottom
���� � insert ������� ������, ���������� ����� toHTML ��� toElement, �� ���������� ���� ����� ��� �������� HTML ���� ��� DOM �������� ��� �������.
var Calendar = Class.create({
// ...,
toElement: function() {
var container = new Element("div");
// ...
return container;
}
});
$("sidebar").insert(new Calendar());
// same as $("sidebar").insert({ bottom: new Calendar() }) or
// $("sidebar").insert({ bottom: new Calendar().toElement() })
$("header").setStyle("font-size: 12px; float: left; opacity: 0.5");
������� � ������������������: uncamelized-����� ��� ������� � ������ ��������� ����� ����� ��� �������� ����������. ��� ��� ���� �� ������ ��� ����� �����:
$("header").setStyle({ "font-size": "12px" });
��� ���������� �������� ��� �� ���� �� ���� ���������:
$("header").setStyle({ fontSize: "12px" });
$("header").setStyle("font-size: 12px");
<div id="my_div">
<p>some content</p>
</div>
$("my_div").identify();
// -> "my_div"
$("my_div").down().identify();
// -> "anonymous_element_1"
<div id="my_div">
<p id="anonymous_element_1">some content</p>
</div>
<img id="my_img" />
<span id="my_span">a picture</span>
$("my_img").wrap();
$("my_span").wrap('p', { className: "caption" });
<div><img id="my_img" /></div>
<p class="caption"><span id="my_span">a picture</span></p>
����� ������ document.viewport ��������� ���������� ������� � ������� ���� ��������:
document.viewport.getDimensions() // { width: 1149, height: 923 }
document.viewport.getWidth() // 1149
document.viewport.getHeight() // 923
document.viewport.getScrollOffsets() // { left: 0, top: 1592 }
���������� API ��������."#{last}, #{first}".interpolate({ first: "Andrew", last: "Dupont" })
// "Dupont, Andrew"
"#{name.last}, #{name.first[0]}. (#{location})".interpolate({
name: { first: "Christophe", last: "Porteneuve" }, location: "Paris"
}) // "Porteneuve, C. (Paris)"
Prototype 1.6.0 ������ ����� ���������� ��� ������� ��������� Enumerable#grep: �������� ������ ���� ��������, ������� ����� match, ������� ����� ������������� ������ ������� � Enumerable; ���� ����� ���������� true, �� ������� ����� �������� � �������������� ������, ������������ grep-��. ��� ������, ��� �� ����� ������ ����������� ������� � ������� grep-�, ��������� ��� ����� ������ ������� ����� match. ��� �������, �� ������ ����� ��������� ������ DOM �� �������, ����������� ������ ��������, ��������������� ��������� CSS ���������:
elements.grep(new Selector("div.widget:first-child"))
��������� ��������� RegExp#test � RegExp#match, ��� ��� ������������ ��� �������� ��������������� ������ ������� � ������� ���������� ��������� ����� �������� ���, ��� �� ����� � ��������. ��������� ������ ��������� ������� Ruby ���������� ===.
�������� ��������� JavaScript 1.6 � WHATWG 1.0 ����������
�� ����������� ���� �������������� ���-���������� � ���� ������ � ���������� ���������� JavaScript 1.6 � Web WHATWG 1.0 ������������ ����������.
... � ��� �������
��� ���� �������� ���������; ������ � CHANGELOG ������ ������ ���������. �� ������� ��� �������������� ������ ��������� �������� ���� ����������� ���������� API � ����� �������� ����. ��� ��� ���������� ��������� ���, ��� �� �������, � mailing �������, � � ����� �����, ��������� ���� (���������� � ����������������� �������).
������� � ���� ����� ���������
�� �� �������� � Prototype 1.6.0_rc0 �������� API, �� ��������� �� ����� ����� ������ ���������� API � �������� ��� ������ �������, ������� ����� ������������ � ������������� ��������.
Download