Wygląda na to, że jest to nowa funkcja w JQuery UI 1.9.0, ponieważ wcześniej korzystałem z JQuery UI i ten tekst nigdy się nie pojawił.
Nie udało się znaleźć niczego związanego w dokumentacji API.
A więc używając podstawowego przykładu autouzupełniania z lokalnym źródłem
$( "#find-subj" ).autocomplete({
source: availableTags
});
Gdy wyszukiwanie pasuje, wyświetla następujący tekst pomocnika:
„Dostępny jest 1 wynik, do nawigacji użyj klawiszy strzałek w górę i w dół”.
Jak mogę to wyłączyć w przyjemny sposób, nie usuwając go za pomocą selektorów JQuery.
javascript
jquery
jquery-ui
autocomplete
user1236048
źródło
źródło
Odpowiedzi:
Wiem, że otrzymałem odpowiedź, ale chciałem tylko podać przykład implementacji:
var availableTags = [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++" ]; $("#find-subj").autocomplete({ source: availableTags, messages: { noResults: 'no results', results: function(amount) { return amount + 'results.' } } });
źródło
source: availableTags
robi? Usunąłem go i nadal nie miałem żadnych wiadomości.availableTags
może to być zmienna lokalna zawierająca obiekt JSON mapowania adresu URL na słowo.[{ '/tag/cats': 'Cats', etc... }]
Kiedy więc użytkownik wpiszeCa
Koty, pojawi się na liście rozwijanej, a po wybraniu lub kliknięciu może na przykład wypełnić ukryte pole adresem.Jest to używane do ułatwień dostępu, łatwy sposób na ukrycie tego za pomocą CSS:
.ui-helper-hidden-accessible { display:none; }
Lub (zobacz komentarz Daniela poniżej)
.ui-helper-hidden-accessible { position: absolute; left:-999em; }
źródło
left: -9999px
można również użyćleft: 200%
(200% vs. 100% tylko do rachunku za ewentualne dziwactw przeglądarek gdzie 100% nie dość uzyskać go od ekranu).Najlepsza odpowiedź tutaj daje pożądany efekt wizualny, ale pokonuje obiekt jQuery obsługujący ARIA i jest trochę chujowa dla użytkowników, którzy na niej polegają! Ci, którzy wspomnieli, że jQuery CSS ukrywa to za Ciebie, mają rację, a oto styl, który to robi:
.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
Skopiuj to do swojego arkusza stylów zamiast usuwać wiadomość, proszę :).
źródło
clip
właściwości, ponieważ jest teraz przestarzała - patrz developer.mozilla.org/en-US/docs/Web/CSS/clipWedług tego bloga :
Więc jeśli przejdziesz do github i spojrzysz na autouzupełniany kod źródłowy , około linii 571 zobaczysz, gdzie jest to faktycznie zaimplementowane.
źródło
Dodanie jquery css pomogło również usunąć tekst instruktażowy.
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/smoothness/jquery-ui.css" />
źródło
Ponieważ jest to tam ze względu na dostępność, prawdopodobnie najlepiej jest to ukryć za pomocą CSS.
Sugerowałbym jednak:
.ui-helper-hidden-accessible { position: absolute; left: -9999px; }
Zamiast:
.ui-helper-hidden-accessible { display:none; }
Ponieważ pierwszy ukryje element poza ekranem, ale nadal umożliwia czytnikom ekranu jego odczytanie, podczas
display:none
gdy nie.źródło
left: -9999px
, wystarczy użyćleft: 200%
(200% wobec 100% tylko do rachunku za ewentualne dziwactw przeglądarek gdzie 100% nie dość uzyskać go od ekranu).Cóż, to pytanie jest nieco starsze, ale tekst w ogóle się nie pojawia po dołączeniu odpowiedniego pliku css:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/YOUR_THEME_HERE/jquery-ui.css" />
Oczywiście musisz wstawić rzeczywisty motyw zamiast
YOUR_THEME_HERE
np. „Gładkości”źródło
Nadaj mu styl, jak sam motyw jQuery. Wiele innych odpowiedzi sugeruje włączenie całego arkusza stylów, ale jeśli potrzebujesz tylko odpowiedniego arkusza CSS, tak to się robi w
http://code.jquery.com/ui/1.9.0/themes/smoothness/jquery-ui.css
:.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
źródło
Dodanie tego kodu zaraz po autouzupełnianiu w skrypcie wypchnie irytującego pomocnika ze strony, ale osoby korzystające z czytników ekranu nadal będą z tego korzystać:
$(document).ready(function() { //pushing the autocomplete helper out of the visible page $(".ui-helper-hidden-accessible").css({"position": "absolute", "left":"-999em"}) //{"display","none"} will remove the element from the page });
Nie jestem fanem manipulowania CSS za pomocą JS, ale w tym przypadku myślę, że ma to sens. Kod JS stworzył problem w pierwszej kolejności, a problem zostanie rozwiązany kilka wierszy poniżej w tym samym pliku. IMO jest to lepsze niż rozwiązanie problemu w oddzielnym pliku CSS, który może być edytowany przez inne osoby, które nie wiedzą, dlaczego klasa .ui-helper-hidden-access została zmodyfikowana w ten sposób.
źródło
left: -9999px
, wystarczy użyćleft: 200%
(200% wobec 100% tylko do rachunku za ewentualne dziwactw przeglądarek gdzie 100% nie dość uzyskać go od ekranu).JQuery CSS .ui-helper-hidden-access znajduje się w pliku themes / base / core.css. Powinieneś dołączyć ten plik (przynajmniej) do swoich arkuszy stylów, aby zachować zgodność z przyszłymi wersjami.
źródło