Skocz do zawartości

Zablokowane [jQueryUI:resizable] odwrotne alsoResize


TeoTN

Rekomendowane odpowiedzi

Czy ktoś może wie, jak zrobić "odwrotne alsoResize" następnego elementu?

tzn. tak jak można ustawić parametr alsoResize (chociaż, nie wiedzieć czemu, parametr musi być w cudzysłowach, nie może być np. $(this).next('.class') ), tak chciałbym, żeby kolejny element zmieniał swój rozmiar w sposób odwrotny.

 

(Trochę to zagmatwałem, mam nadzieję, że jest zrozumiałe o co mi chodzi...)

Odnośnik do komentarza
Udostępnij na innych stronach

To może pokombinuj coś w stylu, że jak bedziesz rozciągał jeden element, to następnemu tej samej klasy dodasz klasę 'alsoresizeme' a po skończeniu usuniesz.

 

start: function(){
  $(this).next('.column').addClass('alsoresizeme');
},
end: function(){
  $(this).next('.column').removeClass('alsoresizeme');
},
alsoResizeReverse: ".alsoresizeme"

Coś w ten deseń :P

Odnośnik do komentarza
Udostępnij na innych stronach

Trzeba umieć ;P

Rozwiązanie Arkariusa jest OK, ale z jednym ale.

Mianowicie - w momencie, gdy zmieniam rozmiar pierwszego elementu .column, to zmienia się w sposób odwrotny rozmiar drugiego elementu - i to jest git.

Ale ten drugi element wpływa także na rozmiar trzeciego elementu, który zaczyna zmieniać swój rozmiar odwrotnie do tego drugiego (to już jest źle).

Gdyby było więcej elementów, zmieniały by się wszystkie. A mnie chodzi o to, by rozmiar zmieniał tylko i wyłącznie kolejny element... (no i ten ruszany przez użytkownika)

Jakieś pomysły co z tym zrobić?

 

Ew. jeśli ktoś by mi podsunął jak można ustawić .resizable({...}) tylko i wyłącznie, gdy poprzedni element (.previous('.column') ) nie ma klasy 'alsoresizeme' ??

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za offtop, ale chyba nie o to chodzi ;P

Mam takie rozwiązanie:

alsoResizeReverse: '.alsoresizeme',
            resize: function() {
                if ($(this).hasClass('noresize'))
                {
                    $(this).resizable('disable');
                }
            },
            start: function() {
                $(this).next('.column').addClass('alsoresizeme');
                $('.alsoresizeme').next('.column').addClass('noresize');
            },
            stop: function(){
                $(this).next('.column').removeClass('alsoresizeme');
                $('.noresize').removeClass('noresize').resizable('enable');
        }

I działa, ale tylko raz. No i żeby w ogóle móc zmienić rozmiar, to przy pierwszym podejściu trzeba kliknąć krawędź, a dopiero potem zmieniać rozmiar.

Czy ktoś mógłby mi podpowiedzieć co robię nie tak jak trzeba?

 

EDIT2:

Ok, już sobie poradziłem. Dzięki za pomoc...

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...