jQuery - zmiana rozmiaru div'a a pole input


(Blady214) #1

Witam,

mam problem z polami input, które znajdują się wewnątrz elementu DIV. Wysokość DIVa zmieniana jest po przez jQuery w momencie, gdy użytkownik na niego kliknie. W tym samym momencie również pojawiają się pola input. W momencie ponownego kliknięcia na DIVa, ma zostać on zmniejszony. Niestety, ale również kliknięcie na pole input skutkuje tym samym, a nie jest to pożądane rozwiązanie, gdyż uniemożliwia to ich wypełnienie. Poniżej zamieszczam kod HTML oraz jQuery:

Klucz użytkownika

Podaj własny klucz szyfrujący, który zostanie wykorzystany wraz z algorytmem AES 256 do zabezpieczenia Twoich plików. Zapewnia on wyższe bezpieczeństwo danych, gdyż nie jest nigdzie przechowywany. Jednak w przypadku jego utraty, odzyskanie zaszyfrowanych danych z serwera jest niemożliwe. Ponadto, pobieranie plików jest możliwe tylko poprzez dedykowane do tego aplikacje desktop.
[/code]
[code]$("#userKey").click(function(){ if ($("#defaultKey").hasClass("selected")) $("#defaultKey").removeClass("selected"); if ($("#userKey").hasClass("selected")){ $("#userKey").animate({height: '-=28px'}, 500); $("#userKey").removeClass("selected"); $("input").fadeOut("fast"); } else { $("#userKey").animate({height: '+=28px'}, 500); $("#userKey").addClass("selected"); $("input").fadeIn("slow"); } });

Docelowo DIV ma pozostawać rozwinięty w momencie gdy użytkownik kliknie w pole input, natomiast ma zostać zwinięty, gdy kliknie na pozostały obszar DIVa.

Z góry dziękuję za pomoc.


(Brightophidia) #2

może tak:

$('#userKeyForm').click(function(event){

  event.stopPropagation();

});

(Blady214) #3

Dzięki wielkie za pomoc, rozwiązałem przez pozycjonowanie formularza i wyciągnąłem go z wnętrza DIVa, ale będę już wiedział na przyszłość, jak przez jQuery to zrobić :slight_smile:


(GioWDS) #4

Ja bym to zrobił tak:

.click(e){if(e.target != this)return;}