2012-03-15 9 views
11

Używam okna dialogowego interfejsu użytkownika jquery, aby użytkownicy zaakceptowali wyskakujące okienko Warunki, w którym zawartość jest zbyt długa, aby zmieścić się w wysokości wyskakującego okienka. Pojawia się pasek przewijania po wyświetleniu okna dialogowego, ale otwiera się on za pomocą paska przewijania u dołu.Możliwe, że pasek przewijania w jqueryUI zaczyna się na górze, gdy zawartość jest dłuższa niż wysokość?

Nie wydaje się to możliwe w opcjach okna dialogowego.

Ktoś wie, w jaki sposób otworzyć okno dialogowe za pomocą paska przewijania u góry?

+0

Czy masz jakieś elementy formularza (wejście, przycisk, etc.) przy dnie ScrollPane ? Ponieważ dialog ma pewne problemy z ogniskowaniem takich elementów. Rozwiązaniem jest dołączenie danych wejściowych u góry znaczników dialogów i usunięcie ich za pomocą otwartego wywołania zwrotnego okna dialogowego. Może problem jest związany z [to pytanie] (http://stackoverflow.com/questions/1202079/prevent-jquery-ui-dialog-from- setting-focus-to- first- textbox). –

Odpowiedz

19

Podobnie jak w komentarzu powyżej, możesz mieć element na dole treści okna dialogowego, który początkowo otrzymuje fokus, co powoduje przewijanie paska przewijania do tego elementu po otwarciu okna dialogowego. Możesz wypróbować obejście tego komentarza, które powinno zadziałać, jeśli problem jest rzeczywiście spowodowany problemem z ustawieniem ostrości. Alternatywnie, możesz can manually scroll the dialog's content to the top. Można to osiągnąć poprzez określenie otwartą zwrotnego i przewijanie zawartości okna dialogowego do górnej pozycji w tam, tak jak poniżej:

$("#dialog").dialog({ 
     open: function() { 
      $(this).scrollTop(0); 
     } 
    }); 
+0

Dzięki. Oba podejścia działają świetnie. Wygląda jak błąd w jqueryUI, chyba że brakuje mi * dlaczego * chciałbyś ustawić fokus na pierwszy element wejściowy domyślnie. – devjeff

+1

@devjeff Nie ma problemu, jeśli moja odpowiedź ci pomogła, rozważ uwzględnienie lub zaakceptowanie. Dzięki. –

+0

To przeszkadzało mi. Domyślnie wydaje się, że otwiera się na wejście lub przynajmniej na dole. Wszelkie informacje podane w górnej części okna dialogowego są tracone lub należy je przewinąć, aby wyświetlić. Byłoby sensowne, aby otworzyć u góry okna dialogowego i pozwolić użytkownikowi przewinąć w dół. Niestety $ (this) nie zadziałało i nie wywołało tego samego selektora, który był używany w oknie dialogowym ("open"), ponieważ używam opcji autoOpen: true. Zamiast tego ustawiam $ ("body"). ScrollTop (0); gdy okno dialogowe otwiera się u góry strony podczas ładowania. – nwolybug

Powiązane problemy