Boshqa elementlarning o'ng tomonidagi barcha elementlarni qanday qilib olish mumkin

Menda bir nechta mutlaq joylashtirilgan elementlar mavjud. Barcha elementlarni joriy elementning o'ng tomonidagi pozitsiyaga ega bo'lish mumkinmi?

Ha bo'lsa, buni qanday qilish kerak?

2
Buni .position() orqali amalga oshirishingiz kerak: api.jquery.com/joylashish va .offset() : api.jquery.com/ ofset
qo'shib qo'ydi muallif m90, manba

2 javoblar

I've just written a plugin which implements this feature. Fiddle: http://jsfiddle.net/FJ5Cp/1/

Funktsiyaning mantiqi quyidagicha bo'lishi kerak:

  1. Joriy elementning chap pozitsiyasini va ofset kengligini oling. To'g'ri chegara olish uchun ularni qo'shing.
  2. Har bir elementning chap pozitsiyasini va ofset kengligini oling, ularni o'ng chegarani olish uchun qo'shing. Ushbu qiymatni bitta qiymat bilan solishtiring.

Foydalanish va funktsiyasi:

// 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);
2
qo'shib qo'ydi
+1 deyarli bir xil plagin yozishni deyarli tugatgan edim :)
qo'shib qo'ydi muallif James Allardice, manba
Hmmm, noto'g'ri narsa. Rob Vt, sizda skype bormi?
qo'shib qo'ydi muallif Mirgorod, manba
qo'shib qo'ydi muallif Mirgorod, manba
Bundan tashqari, fiddle qo'shildi: jsfiddle.net/FJ5Cp
qo'shib qo'ydi muallif Rob W, manba
@Mirgorod Yo'q, lekin suhbatni chat.stackoverflow.com saytida boshlashimiz mumkin.
qo'shib qo'ydi muallif Rob W, manba

.filter() dan foydalanib, har bir elementning .offset() chapdan joriy element bilan solishtirganda:

var l = currentElement.offset().left;
var righterElements = positionedElements.filter(function(){
    return $(this).offset().left > l;
});
0
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb