Mam przycisk div, który ma atrybut title, który został użyty jako tekst dla wskazówek dotyczących narzędzi za pomocą jQueryUI. Chciałbym zmienić etykietkę przycisku, klikając go. Jednak po kliknięciu przycisku i uruchomieniu funkcji oddzwaniania mysz znajduje się nad elementem div, a tytuł jest pusty.Zmiana atrybutu tytułu przy użyciu jQuery podczas najechania na element
Jak naprawić ten problem? Wygląda na to, że widget jQueryUI Tooltip usuwa tytuł po najechaniu kursorem i umieszcza go z powrotem na myszy.
$(document).tooltip();
$(".btn").click(function(){
alert($(this).attr("title")); // Expect to see T1 or T2 but shows blank
if ($(this).attr("title")=="T1"){
$(this).attr("title","T2")
}else{
$(this).attr("title","T1")
}
});
żywo: http://jsfiddle.net/lordloh/ckTjA/
Bez widget jQueryUI Tooltip w miejscu, wszystko wydaje się działać prawidłowo: http://jsfiddle.net/lordloh/ckTjA/1/
Ponadto mam widżet podpowiedzi nałożoną na $(document)
. Nie mogę więc użyć $(this).tooltip("option","content")
, ponieważ podpowiedź nie jest wyraźnie zastosowana na $(this)
. Powoduje to błąd JavaScript na konsoli.
2013-02-18: Od dzisiaj uruchamiam $(document).tooltip("destroy");
, zmieniając atrybuty tytułu i $(document).tooltip();
. Nie eleganckie rozwiązanie :-(szukam czegoś, co nie jest hack
Dzięki. Dlaczego nie mogę uzyskać do niego dostępu poprzez '$ (this) .attr (" data-ui-tooltip-title ")'? –
Widzę dwa wpisy w dokumentach - http: // api.jquery.com/jQuery.data/ i http://api.jquery.com/data/. Ten ostatni wydaje się używać atrybutu HTML5 "data- *". Zakładam, że '$ (" # my-element "). Data (" ui-tooltip-title ")' przechowuje dane gdzie indziej (?). –
Myślę, że jQuery przechowuje tylko informacje w "danych-xxx" HTML5, jeśli element ma atrybut danych na początek. Jeśli nie, zapisuje go w wewnętrznej tablicy lub coś w tym stylu. – BG100