Jeśli jestem poprawny getJSON
nie może zwrócić słów, ponieważ jest to metoda asynchroniczna. Jak mogę poprawić następujący element kodu, aby wypełnić tytuł z zmienną zwaną {X1}}, który zawiera dane, które chcę nacisnąć w atrybucie narzędzia {X2}}?
$('.multiselect-container li').not('.filter, .group').tooltip({
placement: 'right',
container: 'body',
title: function () {
var req = $.getJSON('localfile.json', function(data) {
var words = data["blarg"]["something"];
});
return "content"; // words variable should fit here
}
});
0
Jym Morrison
13 sierpień 2014, 23:22
2 odpowiedzi
Najlepsza odpowiedź
Umieść utworzenie podpowiedzi wewnątrz funkcji wywołania zwrotnego AJAX
$.getJSON('localfile.json', function(data) {
var words = data["blarg"]["something"];
$('.multiselect-container li').not('.filter, .group').tooltip({
placement: 'right',
container: 'body',
title: function () {
return words; // words variable should fit here
}
});
});
3
PitaJ
13 sierpień 2014, 19:27
Myślę, że jednym z rozwiązań jest zadzwonienie do funkcji AJAX synchronicznie. Oto przykład
function getData()
{
if (window.XMLHttpRequest)
AJAX=new XMLHttpRequest();
else
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
if (AJAX)
{
AJAX.open("GET", "localfile.json", false);
AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
AJAX.send();
return JSON.parse(AJAX.responseText);
}
else
return null;
}
Następnie wszystko, co musisz zrobić w swoim kodzie, czy to:
$('.multiselect-container li').not('.filter, .group').tooltip({
placement: 'right',
container: 'body',
title: getData
});
0
Khalid
13 sierpień 2014, 19:29