Jakiś czas temu rozwiązałem problem dla kogoś, kto jest wanted his textarea to grow. Zrobiłem funkcję, która nasłuchuje zdarzeń w obszarze i ponownie oblicza liczbę wierszy. Chciałem użyć kodu w innym projekcie, ale jest problem. The textarea nie są znane Aby rozwiązać ten problem, używam live
zamiast bind
, aby przyszłe obszary również były powiązane.Jak powiązać zdarzenie przewijania na żywo()?
Teraz stwierdzam, że live
wykonuje dużo wolniej niż bind
. Stworzyłem a simplified example on jsFiddle. Górny tekst zachowuje się tak, jak chcę, ale nowo dodane migają ze względu na późną sygnalizację (używam Chrome).
Jak ustawić Problem polega na tym, że live
tak szybko, jak bind
?
scroll
nie można używać z instrukcją live
. Czy istnieje sposób włączenia scroll
dla live
? Czy jest możliwe zdarzenie jQuery, które sygnalizuje mi, że dodano nową usługę TextArea, więc mogę użyć wiązania, aby dodać scroll
do nowo utworzonego elementu?
Nie mogę się doczekać waszych pomysłów.
EDIT: Zmieniono link do kodu. Usunięto scrollingCode. Dodano inny przycisk, aby utworzyć inne pole tekstowe. Problem dotyczy "przewijania". Nie strzela.
Wyjaśnienie: Nie wiem, jaką funkcję stworzą textarea. Widzę migotanie na dynamicznie dodawanych skrzynkach w Chrome.
Dla przyszłych czytelników:
w jQuery 1.3.x tylko następujące JavaScript wydarzenia (oprócz niestandardowych zdarzeń) może być związany z .live():
click, dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, and mouseup
. Jako z jQuery 1.4 metoda .live() obsługuje zdarzenia niestandardowe, a także wszystkie zdarzenia JavaScript z bąbelkami. Począwszy od jQuery 1.4.1 nawet ostrość i rozmycie działają z live (mapowanie na więcej odpowiednie, bulgotanie, wydarzenia focusin i focusout). Od jQuery 1.4.1 można określić zdarzenie na hover (odwzorowanie na mouseenter i mouseleave, które z kolei, , są odwzorowane na mouseover i ).
@Pointy yeah, to prawda, dlatego robię textarea, która będzie na tyle duża, że nie będzie mogła przewijać. I tylko przewija się tak lekko, gdy użytkownik wprowadza nowe dane i wystrzeliwuje przed klawiszem. Spróbuj i usuń zwój z przykładu, a zobaczysz, że nie pójdzie tak gładko. –
@Keach tak Widzę, że po graniu z nim. Twój jsFiddle zawiesza moją przeglądarkę, gdy próbuję pisać w "statycznej" przestrzeni tekstowej, i działa dobrze, jak sądzę, kiedy wpisuję dodane pole tekstowe. Jedna rzecz: dlaczego kod nazywa "scrollTop (0)" w pętli powiększania/zmniejszania? – Pointy
@Pointy elem.scrollTop (0); może być usunięty :-). To było z czegoś, co próbowałem: P. –