Próbowałem utworzyć zmienny rozmiar pola tekstowego (ASP.NET multiline TextBox
/HTML textarea
) i używać interfejsu JQuery do zmiany rozmiaru, ale wydaje się, że działa na kilka problemów związanych z niestandardowym przeciągnięciem uchwyty.Niestandardowe uchwyty skalowalne w JQuery UI
Dokumentacja JQuery w metodzie Resizable
(konkretnie w przypadku opcji handles
) sugeruje, że mogę ustawić dowolny uchwyt, aby używał niestandardowego elementu HTML. Udało mi się uzyskać skalowalny textbox działający doskonale przy użyciu domyślnych uchwytów z możliwością zmiany rozmiaru, ale próba ustawienia niestandardowych (tj. Elementu HTML, który zdefiniowałem w znacznikach) tworzy następujący problem: zmienny rozmiar kontenera pozostawia odpowiednią ilość miejsca na Uchwyt div
u dołu (dla uchwytu południowego), pozostawia jednak puste miejsce i pokazuje element poniżej (poza) rozmiaru pojemnika (zweryfikowanego za pomocą Firebug).
Tu jest mój znaczników (ASP.NET/XHTML) i kod JavaScript:
<asp:TextBox runat="server" ID="codeTextBox" TextMode="MultiLine" Wrap="false" Rows="15">
</asp:TextBox>
<div class="resizable-s" style="width: 100%; height: 22px; background: red;">
</div>
<script type="text/javascript">
$(function() {
var codeTextBox = $("#<%= codeTextBox.ClientID %>");
codeTextBox.resizable({
handles: { s : $(".resizable-s") },
minHeight: 80,
maxHeight: 400
});
});
</script>
Oczywiście, nie mogę dokonać zmienny rozmiar uchwytu div (klasa resizable-s
) dzieckiem TextBox
/textarea
, ale nie powinno to stanowić problemu zgodnie z dokumentacją JQuery.
Sądząc z przeszukania, które zrobiłem, nie jestem jedyną osobą, która miała ten problem. (Niestety, dokumentacja JQuery nie daje przykładu użycia niestandardowych uchwytów skalowalnych, więc nie mamy pewności co do właściwego kodu.) Jeśli ktokolwiek mógłby zaproponować poprawkę do tego, lub w rzeczywistości potwierdzenie, że jest to błąd JQuery, to byłoby bardzo docenione.
Dzięki za zbadanie tego. Nie spodziewałem się, że hack naprawi pliki JS, ale byłoby wspaniale mieć je! Niestety, próbowałem wprowadzić zmiany, ale bez powodzenia. "Południe" div pojawia się jako bardzo mały tekst i wcale nie zachowuje się jak uchwyt (ustawienie "font-size: 100%;" sprawia, że tekst jest wyraźnie widoczny, ale nie więcej). Być może są jakieś inne zmiany, które wprowadziłeś? – Noldorin
Zupełnie dobrze, przegapiłem jedną linię, którą wtrąciłem. W moich testach umieściłem wysokość/szerokość/kolor tła w CSS dla południowego div, co ułatwia znalezienie uchwytu. Tylko przy wielkości czcionki 100% działa, więc nie dodałem reguł CSS do analizy. – ylebre
Dziwne ... Ciągle nie otrzymuję wyników, a dwukrotnie sprawdziłem, czy mój kod pasuje do tego, co wysłałeś w identyczny sposób. Jakieś pomysły? Czy w ogóle możliwe byłoby przesłanie strony testowej i zmodyfikowanego pliku ui.resizable.js? – Noldorin