Więc z pomocą innych, wyżej, w końcu znalazłem lepsze rozwiązanie. To nie wymaga brutalnej poprawki do ponownego dodawania title
do każdego pojedynczego elementu. Nie zrozumcie mnie źle, ta poprawka zadziała, ale wydajność jest ważna (szczególnie nadal potrzebuję wsparcia dla IE8).
Zasadniczo dodaję zmienną niestandardową do obiektu tooltip, może to być także zmienna globalna. Ponieważ wszystko jest Object
w js, możesz po prostu dodać wszystko, co chcesz.
$(document).tooltip.temporarilyOff
Wtedy kiedy zainicjować tooltip jQuery, po prostu trzeba dodać kontrolę w open
:
var settings = {};
settings.tooltipClass = "tooltip";
settings.open = function (event, ui) {
if ($(document).tooltip.temporarilyOff) {
ui.tooltip.stop().remove();
}
};
$(document).tooltip(settings);
wtedy kiedy muszę tymczasowo wyłączyć podpowiedzi jQuery, tylko trzeba, aby przełączyć flaga wszędzie, gdzie chcę. Tak:
$(document).tooltip.temporarilyOff = true;
Anything po tym momencie, etykietka nie zostanie uruchomiona, a wszystkie elementy będą trzymać swoje title
atrybuty. Kiedy skończę z tym, co robię, wystarczy ustawić flagę z powrotem na false
, a podpowiedź będzie działać dokładnie tak, jak poprzednio.
Prawdopodobnie mogę zrobić to w wtyczce jQuery dla łatwiejszych połączeń, a także ukryć nieco paskudną nazwę zmiennej ... ale w każdym razie to jest idea. Myślę, że jest to o wiele lepsza poprawka, ponieważ nie zmusi jQuery do usunięcia atrybutu title
za nic, a następnie dodając go później, robiąc dwukrotnie bezużyteczną pracę.
Oto updated example rozwidlony od @ oryginalnej jsFiddle Jasen za:
kiedy ponownie włączyć podpowiedzi powinien kontynuować pracę .. http://jsfiddle.net/D8gMy/ –
Ten [jsfiddle] (http: // jsfiddle .net/xMxqg/2 /) robi _nie_ kontynuuje pracę jquery v2.1.0 i ui v1.11. Z jakiej wersji bibliotek korzystasz? To wygląda na błąd. – Jasen
jQuery v1.11.1 jQuery UI - v1.11.0 – codenamezero