Jedno do poszukiwania przy użyciu opcji podpowiedzi „treści” na „Ajax” tekst na etykiecie, jest to, że pobieranie tekst wprowadza opóźnienie do inicjowania podpowiedzi.
W przypadku, gdy mysz porusza się szybko po węźle DOM z podpowiedziami narzędziowymi, zdarzenie mouse-out może nastąpić przed zakończeniem inicjacji, w którym to przypadku etykieta narzędziowa jeszcze nie nasłuchuje zdarzenia.
Powoduje to, że etykieta narzędzia jest wyświetlana i nie zamyka się, dopóki mysz nie zostanie przeniesiona z powrotem na węzeł i nie zostanie ponownie otwarta.
Chociaż powoduje pewne obciążenie sieci, które może nie być wymagane, należy rozważyć pobranie tekstu podpowiedzi przed skonfigurowaniem etykiety narzędzi.
W mojej aplikacji, używam własnych rozszerzeń jQuery wykonać połączenie AJAX, analizowania resutls i przywróć wszystkie podpowiedzi, oczywiście można użyć jQuery i/lub własne rozszerzenia, ale sedno jest to:
użyj tagów graficznych jako kotwice tooltip, tekstu, który zostanie odtworzony jest identyfikowany za nazwą atrribute:
<img class="tooltipclassname" name="tooltipIdentifier" />
Zastosowanie powołać metodę rozszerzenia skonfigurować wszystkie podpowiedzi:
$(".tooltipclassname").extension("tooltip");
Wewnątrz metody tego rozszerzenia podpowiedzi:
var ids = "";
var nodes = this;
// Collect all tooltip identifiers into a comma separated string
this.each(function() {
ids = ids + $(this).attr("name") + ",";
});
// Use extension method to call server
$().extension("invoke",
{
// Model and method identify a server class/method to retrieve the tip texts
"model": "ToolTips",
"method": "Get",
// Send tooltipIds parameter
"parms": [ new myParmClass("tipIds", ids) ],
// Function to call on success. data is a JSON object that my extension builds
// from the server's response
"successFn": function(msg, data) {
$(nodes).each(function(){
// Configure each tooltip:
// - set image source
// - set image title (getstring is my extension method to pull a string from the JSON object, remember that the image's name attribute identifies the text)
// - initialise the tooltip
$(this).attr("src", "images/tooltip.png")
.prop("title", $(data).extension("getstring", $(this).attr("name")))
.tooltip();
});
},
"errorFn": function(msg, data) {
// Do stuff
}
});
// Return the jquery object
return this;
Bardzo pomocny. Dzięki! – Derrick