Ich habe eine div-Schaltfläche mit einem title-Attribut, das wir als Text für QuickInfos mit jQueryUI verwenden. Ich möchte den Tooltip der Schaltfläche ändern, indem ich darauf klicke. Wenn Sie jedoch auf die Schaltfläche klicken und die Rückruffunktion ausgelöst wird, befindet sich die Maus über dem Div und der Titel ist null.Ändern des Titelattributs mit jQuery, während der Mauszeiger über dem Element steht
Wie gehe ich vor, um dieses Verhalten zu beheben? Es sieht so aus, als ob das jQueryUI Tooltip-Widget den Titel beim Hover entfernt und wieder auf die Maus setzt.
$(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")
}
});
Live-: http://jsfiddle.net/lordloh/ckTjA/
Ohne die jQueryUI Tooltip-Widget an Ort und Stelle, scheinen die Dinge gut zu funktionieren: http://jsfiddle.net/lordloh/ckTjA/1/
Außerdem habe ich den Tooltip-Widget auf $(document)
angewendet. Daher kann ich $(this).tooltip("option","content")
nicht verwenden, da die QuickInfo nicht explizit auf $(this)
angewendet wird. Dies führt zu einem Javascript-Fehler auf der Konsole.
2013-02-18: Ab jetzt bin ich $(document).tooltip("destroy");
ausgeführt, Titelattribute ändern und $(document).tooltip();
. Keine elegante Lösung :-(ich nach etwas suchen, das nicht ein Hack ist
Danke. Warum kann ich nicht über '$ (this) .attr (" data-ui-tooltip-title ") auf' 'zugreifen? –
Ich sehe zwei Einträge in der Dokumentation - http: // api.jquery.com/jQuery.data/ und http://api.jquery.com/data/. Letzteres scheint das HTML5-Attribut 'data-*' zu verwenden. Ich nehme an, dass die '$ (" # my-element ") .data (" ui-tooltip-title ")' die Daten an anderer Stelle (?) Speichert. –
Ich denke, dass jQuery nur Informationen in der HTML5-Datei "data-xxx" speichert, wenn das Element über das Datenattribut verfügt. Ist dies nicht der Fall, wird es in einem internen Array oder ähnlichem gespeichert. – BG100