Mam ten kod do pracy do tej pory:Jak zmienić tekst przycisku w JQuery
Fiddle: http://jsfiddle.net/r4emt/12/
Teraz przed wprowadzeniem autouzupełniania jQuery UI, przycisk napis „Hello”. Możesz wpisać "element" w autouzupełnianiu interfejsu JQuery, a zauważysz, że przycisk mówi teraz "Świat". Kliknij przycisk "świat", aby umieścić element na liście. Jeśli ponownie wpisujesz przedmiot, możesz go wybrać i kliknąć przycisk "zastąp" na elemencie już znajdującym się na liście. Jednak gdy to zrobisz, przycisk nadal mówi "świat", ale powinien powiedzieć "cześć", ponieważ nie ma nic w polu wejściowym. Jeśli klikniesz w polu wprowadzania, a następnie trafisz przycisk usuwania lub powrotu, zmieni się on z powrotem na "cześć", ale nie ma nic do usunięcia lub przejścia z lewej strony. Myślę, że ma zrobić z tej części kodu:
$('#inputWrapper').on('keyup', '#tags', function() {
if($(this).val() == '') {
$('button.addButton').text('Hello');
} else {
$('button.addButton').text('World');
}
});
W szczególności, „keyup” część. Moje pytanie brzmi: jak mogę to naprawić, aby za każdym razem, gdy pole wejściowe było puste, przycisk zawsze brzmi "cześć", a gdy w polu jest wejście, przycisk brzmi "świat"? Dzięki!
Proponuję użyć Zdarzenie 'textchanged' zamiast polegać wyłącznie na keyup, ponieważ zadziała nawet wtedy, gdy ktoś wklei tekst lub wklei do tekstu: http://www.zurb.com/playground/jquery-text-change-custom-event – techfoobar
Wow, dzięki za sugestię! Wygląda na to, że jest dokładnie to, czego potrzebuję. Jak dokładnie zainstalować tę wtyczkę? I czy ma znaczenie, gdzie zawieram linię
Nie możesz po prostu ustawić tekstu z powrotem na Hello po kliknięciu? Dodaj to do dołu kliknij przycisk funkcji:
http://jsfiddle.net/r4emt/13/
Źródło
2013-04-22 19:25:59
Doceniam pomoc, ale to nie rozwiązało problemu. Jeśli ją zastąpisz, przycisk nadal będzie brzmiał "świat". – sbru
Nie widzę twojej sortowalnej listy w skrzypcach. Widzę tylko pole tekstowe i przycisk. –
Przycisk dodaje elementy do listy do sortowania ... – sbru
Put stan jak ten
if($.trim($(this).val()) == '')
do usuwania niechcianych spacji. Ponadto, należy zmienić tekst przycisku na „Hello” w procedurze obsługi zdarzenia click
Dodaj to na końcu funkcji kliknij:
$(this).text('Hello');
Oto kod: http://jsfiddle.net/r4emt/34/
Źródło
2013-04-22 19:26:34 armandocj
Doceniam pomoc, ale to nie rozwiązało problemu. Jeśli ją zastąpisz, przycisk nadal będzie brzmiał "świat". – sbru
Czy masz funkcję uruchamianą po kliknięciu przycisku? – armandocj
Tak, ostatnia funkcja w pliku js. – sbru
jsFiddle Working Demo
Źródło
2013-04-22 19:28:01
Zaktualizowałem łącze jsFiddle. Zobacz jeszcze raz –
Doceniam pomoc, ale to nie rozwiązało problemu. Jeśli ją zastąpisz, przycisk nadal będzie brzmiał "świat". – sbru
Pracowałem dla mnie. +10 ☺ – Pathros
Funkcja ta działa tylko za pierwszym razem, bo po to jest wykonywane detektor zdarzeń jest zawsze będzie oceniana po keyup w wyniku czego pole wejściowe zawsze ma wartość. Zauważysz, że po kliknięciu przycisku, jeśli wpiszesz coś i skasujesz, naciśnięcie klawisza Backspace spowoduje powrót do Hello.
Aby uzyskać pożądane wyniki, po kliknięciu przycisku Wyślij na przycisku, ponieważ usuwasz z pola wprowadzania , możesz również tam zmienić tekst.
Patrz: http://jsfiddle.net/r4emt/37/
Właśnie dodałem:
do końca funkcji kliknięcia przycisku.
Źródło
2013-04-22 20:09:06
Użyj „tekst” funkcja
Źródło
2013-11-10 08:44:42
wiem, że to długi wątek martwy, ale potrzebowałem dodać to, ponieważ ja właśnie spędziliśmy 2 dni tropienia przeciek pamięci (spowodowane przeze mnie przy użyciu kod z tej strony).
WAŻNE: Nie używaj tekstu jQuerys() w elementach przycisków!
Funkcja tworzy coś w DOM, którego nie można usunąć przez empty(). Jeśli wywołasz tę funkcję wiele razy w długim okresie, duża ilość śmieci zostanie utracona w DOM, powodując uszkodzenie.
Zobacz jQuery API documentation.
(nie mogę znaleźć dokładnie tam, gdzie jej wymienione w dokumentacji, ale jest gdzieś tam, mam biec do mojego pociągu teraz) ...
Źródło
2014-02-14 14:56:59 User2
To nie brzmi bardzo godny zaufania, szczerze mówiąc. Jest potencjalny wyciek opisany [tutaj] (http://stackoverflow.com/a/16405533/33080), ale stwierdzenie takie jak "nie używaj tekstu()" bez wyjaśnienia jest zbyt niespecyficzne. –