Remove dependencies to Selector in favor of Prototype.Selector throughout the library.

This commit is contained in:
Tobie Langel 2009-10-23 01:43:48 +02:00
parent caf66395d5
commit 2d13d45dc8
2 changed files with 20 additions and 13 deletions

View File

@ -518,9 +518,10 @@ Element.Methods = {
* Checks if `element` matches the given CSS selector.
**/
match: function(element, selector) {
element = $(element);
if (Object.isString(selector))
selector = new Selector(selector);
return selector.match($(element));
return Prototype.Selector.match(element, selector);
return selector.match(element);
},
/**
@ -538,7 +539,7 @@ Element.Methods = {
if (arguments.length == 1) return $(element.parentNode);
var ancestors = Element.ancestors(element);
return Object.isNumber(expression) ? ancestors[expression] :
Selector.findElement(ancestors, expression, index);
Prototype.Selector.filter(ancestors, expression)[index || 0];
},
/**
@ -574,7 +575,7 @@ Element.Methods = {
if (!Object.isNumber(index)) index = 0;
if (expression) {
return Selector.findElement(element.previousSiblings(), expression, index);
return Prototype.Selector.filter(element.previousSiblings(), expression)[index];
} else {
return element.recursivelyCollect("previousSibling", index + 1)[index];
}
@ -596,7 +597,7 @@ Element.Methods = {
if (!Object.isNumber(index)) index = 0;
if (expression) {
return Selector.findElement(element.nextSiblings(), expression, index);
return Prototype.Selector.filter(element.nextSiblings(), expression)[index];
} else {
var maximumLength = Object.isNumber(index) ? index + 1 : 1;
return element.recursivelyCollect("nextSibling", index + 1)[index];
@ -605,15 +606,16 @@ Element.Methods = {
/**
* Element.select(@element, selector...) -> [Element...]
* - selector (String): A CSS selector.
* Element.select(@element, expression...) -> [Element...]
* - expression (String): A CSS selector.
*
* Takes an arbitrary number of CSS selectors and returns an array of
* descendants of `element` that match any of them.
**/
select: function(element) {
var args = Array.prototype.slice.call(arguments, 1);
return Selector.findChildElements(element, args);
element = $(element);
var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
return Prototype.Selector.select(expressions, element);
},
/**
@ -624,8 +626,9 @@ Element.Methods = {
* selector(s).
**/
adjacent: function(element) {
var args = Array.prototype.slice.call(arguments, 1);
return Selector.findChildElements(element.parentNode, args).without(element);
element = $(element);
var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
return Prototype.Selector.select(expressions, element.parentNode).without(element);
},
/**

View File

@ -149,8 +149,12 @@
function findElement(event, expression) {
var element = Event.element(event);
if (!expression) return element;
var elements = [element].concat(element.ancestors());
return Selector.findElement(elements, expression, 0);
while (element) {
if (Prototype.Selector.match(element, expression)) {
return Element.extend(element);
}
element = element.parentNode
}
}
/**