Я только что написал плагин, который реализует эту функцию. Скрипка: http://jsfiddle.net/FJ5Cp/1/
Логика функции должна быть похожа на:
- Получить левую позицию текущего элемента и ширину смещения. Сложите их вместе, чтобы получить правильную границу.
- Получите левую позицию и ширину смещения каждого элемента, добавьте их, чтобы получить правую границу. Сравните это значение со значением в единицу.
Использование и функции:
// Basic usage
var allRightElements = $("element").rightOfCurrent();
// Only select ___ elements which are located right of the current element
var allRightElementsFilter = $("element").rightOfCurrent("___");
// Only select ___ elements, which are located right of the current element,
// which are childs of ####
var allRightFilterInsideSomething = $("element").rightOfCurrent("___", "###");
(function($){
$.fn.rightOfCurrent = function(selector, context){
elem = this.eq(0);
selector = selector || '*';
context = context || null;
var currentRight = elem.offset().left + elem.width();
return $(selector, context).filter(function(){
var $this = $(this);
if ($this.css('position') == 'absolute'){
return $this.offset().left + $this.width() > currentRight;
}
return false;
});
}
})(jQuery);