Czy istnieje sposób, aby ręcznie otworzyć zamknięcie jquery ui tooltip? Po prostu chcę, aby reagowała na zdarzenie typu "kliknięcie" włączające/wyłączające. Możesz odłączyć wszystkie zdarzenia myszy i ponownie je powiązać podczas wywoływania .tooltip ("otwórz"), nawet jeśli nie powinno się inicjować ani ustawiać zdarzeń imo, ponieważ jeśli spróbujesz uruchomić .tooltip ("otwórz") bez inicjowania, to narzeka głośno o braku inicjalizacji.jquery ui tooltip manual open/close
Odpowiedz
jltwoo, czy mogę zaproponować użycie dwóch różnych przełączników binarnych, aby umożliwić automatyczne otwieranie i automatyczne zamykanie? Z tego zmienić swój kod będzie wyglądać następująco:
(function($) {
$.widget("custom.tooltipX", $.ui.tooltip, {
options: {
autoShow: true,
autoHide: true
},
_create: function() {
this._super();
if(!this.options.autoShow){
this._off(this.element, "mouseover focusin");
}
},
_open: function(event, target, content) {
this._superApply(arguments);
if(!this.options.autoHide){
this._off(target, "mouseleave focusout");
}
}
});
}(jQuery));
W ten sposób inicjowania podpowiedź jak:
$(someDOM).tooltipX({ autoHide:false });
pokazuje sama, gdy wskaźnik myszy znajduje się nad elementem, ale trzeba ręcznie blisko to.
Jeśli chcesz ręcznie sterować zarówno otwieranie i zamykanie działania, można po prostu użyć:
$(someDOM).tooltipX({ autoShow:false, autoHide:false });
Praca na tym poziomie skrzypiec - Uprościliśmy także wiązanie kliknięć do jednej linijki! :) (wyrażenie przypisania zwraca przypisaną wartość) ::: https://jsfiddle.net/nuv8v1ct/ –
Etykietka narzędzi ma opcję wyłączenia. Dobrze użyłem go i oto kod:
$('a').tooltip({
disabled: true
}).click(function(){
if($(this).tooltip('option', 'disabled'))
$(this).tooltip('option', {disabled: false}).tooltip('open');
else
$(this).tooltip('option', {disabled: true}).tooltip('close');
}).hover(function(){
$(this).tooltip('option', {disabled: true}).tooltip('close');
}, function(){
$(this).tooltip('option', {disabled: true}).tooltip('close');
});
Próbowałem tego. Podczas gdy działa na twoim przykładzie, w rzeczywistości (po przeczytaniu kodu) nie ma żadnego realnego sposobu blokowania automatycznego zamykania etykiety narzędzia po myszy. – hyperair
to działa: close: function (event, ui) {ui.tooltip.stop(); [link] (http://jqueryui.com/tooltip/#custom-animation) – Hontoni
@Antonimo Pokazany kod zatrzymuje animację, jeśli faktycznie sprawdzisz domTree, tworzysz wiele DOM-narzędziowych DOM, zdecydowanie nie coś preferowane. Niestety sposób w jaki zakodowana jest etykieta narzędzia jquery-ui, zdarzenia mouselease/focusout są dołączane po "otwartym" zdarzeniu, więc nie możemy łatwo usunąć tych zdarzeń po ich dołączeniu, aby zapobiec zamykaniu podpowiedzi. To samo dotyczy wywoływania zdarzenia close po usunięciu zmiennych stanu, byłoby za późno, aby się zatrzymać. Dopóki ta podpowiedź nie zostanie jeszcze ulepszona, będziemy musieli ją rozszerzyć i wprowadzić własne modyfikacje. – jltwoo
związane z moją innych uwag, zajrzałem do oryginalnego kodu i osiągnąć instrukcja otwierania/zamykania poprzez rozszerzenie widget i dodanie opcji AutoHide wersji jQuery UI v1 .10.3. Zasadniczo po prostu usunięto programy nasłuchujące myszy, które zostały dodane w _create i wewnętrznym _ otwierającym się wywołaniu.
Edit: separacji AutoHide i Autoshow jako dwa oddzielne flagi jak sugeruje @MscG
Demo tutaj: http://jsfiddle.net/BfSz3/
(function($) {
$.widget("custom.tooltipX", $.ui.tooltip, {
options: {
autoHide:true,
autoShow: true
},
_create: function() {
this._super();
if(!this.options.autoShow){
this._off(this.element, "mouseover focusin");
}
},
_open: function(event, target, content) {
this._superApply(arguments);
if(!this.options.autoHide){
this._off(target, "mouseleave focusout");
}
}
});
}(jQuery));
Teraz, kiedy zainicjować można ustawić podpowiedź, aby ręcznie pokaż lub ukryj, ustawiając autoHide: false:
$(someDOM).tooltipX({ autoHide:false });
I właśnie bezpośrednio wykonywać standardowe otwierania/zamykania połączeń w kodzie jako potrzebne gdzie indziej
$(someDOM).tooltipX("open"); // displays tooltip
$(someDOM).tooltipX("close"); // closes tooltip
prosty poprawkę, dopóki nie mają czasu, aby zrobić oficjalny wniosek ściągania, będzie to musiał zrobić.
Jeśli chcesz po prostu rozpiąć zdarzenia i nie chciałby, aby swój własny podpowiedź.
$("#some-id").tooltip(tooltip_settings)
.on('mouseout focusout', function(event) {
event.stopImmediatePropagation();
});
$("#some-id").attr("title", "Message");
$("#some-id").tooltip("open");
mouseout blokuje tooltop znikają przesuwając kursor myszy
focusOut blokuje tooltop znikają przez nawigacji klawiatury
- 1. Nadrzędne style CSS widgetu jQuery UI Tooltip
- 2. JTerser UI tooltip html z łączami
- 3. jQuery Tooltip UI - podpowiedzi wyzwalacza po x sekundach
- 4. jquery ui konflikt podpowiedzi z bootstrap 3 tooltip
- 5. jQuery UI Tooltip porusza się z macierzystej div
- 6. Zawartość AJAX w widgetie JQuery UI Tooltip Widget
- 7. zmiana pozycji jquery tooltip strzałka
- 8. jQuery Popup Bubble/Tooltip
- 9. Narzędzia jQuery -> Metoda niszczenia podpowiedzi Tooltip?
- 10. Dynamiczne podpowiedzi do bootstrapu Twittera dla suwaka jQuery UI
- 11. jQuery UI Widżet podpowiedzi auto close
- 12. GameKit: GKSession manual
- 13. ANSI SQL Manual
- 14. Jquery ui $ ([])
- 15. Jquery ui combobox (autouzupełnianie) znika
- 16. Jquery-ui przeciągalne i dynamiczne Jquery-ui przeciągalne?
- 17. jQuery UI - Konwertuj jQuery UI Datepicker na czas UNIX
- 18. jQuery vs jQuery Mobile vs jQuery UI?
- 19. jQuery UI Tabs rozmiar
- 20. wyjątki jQuery bloku UI
- 21. jQuery UI Accordion aktywuj
- 22. Stylizowanie kart Jquery-ui
- 23. Zagnieżdżanie jQuery UI sortable
- 24. Stanowisko dialogowego jQuery UI
- 25. Formatowanie jquery UI datepicker
- 26. jQuery-UI Datepicker: Draggable?
- 27. jQuery UI Dialog przyciski
- 28. Używanie ikon jQuery UI
- 29. jQuery UI sortowalna tolerancja
- 30. animacja pozycji jQuery Ui()
muszę ręcznie go otworzyć, ale ze śledzeniem myszą. Ścieżka myszy nie działa, jeśli ręcznie ją otworzysz. – theblang