Skocz do zawartości
TeoTN

[jQueryUI:resizable] odwrotne alsoResize

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...)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Korzystałem z tego rozwiązania, ale nie pozwala ono na:

alsoResizeReverse: $(this).next('.column')

jedynie działa przy

alsoResizeReverse: ".column"

co ma dla mnie gigantyczne znaczenie.

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A nie możesz po prostu zmodyfikować tak tego alsoResizeReverse aby zamiast stringa przyjmowało jQuerowskie node? >.>

Udostępnij tego posta


Odnośnik do posta
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' ??

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To co pisałem było do Arkariusa.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To sam sobie zmodyfikuj, a nie mędrkujesz... Skoro tego nie zrobiłem widocznie nie umiem. Podałem takie rozwiązanie jakie przyszło mi do głowy, a skoro ty potrafisz, to czemu nie zmodyfikujesz tego dla niego, tylko pokazujesz jaki to nie jesteś zażenowany?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

O co Ci koleś chodzi? Dałem tylko jedno z możliwych rozwiązań, a Ty już się do mnie plujesz? Chillout i wpierniczać ogórki :)

Udostępnij tego posta


Odnośnik do posta
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...

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×