Показать сообщение отдельно
  #1 (permalink)  
Старый 19.04.2018, 22:42
Аспирант
Отправить личное сообщение для Ramundo Посмотреть профиль Найти все сообщения от Ramundo
 
Регистрация: 07.03.2015
Сообщений: 47

Помогите, не отрабатывает процедура
Это просто какое-то феерическое фуфло...
Использую JQuery Widget Tooltip, чтобы показать ответ ajax в виде подсказки.

Есть массив, который должен хранить ответы сервера.
При наведении на элемент с классом "hero" берется его значение data-id, и если оно уже есть в массиве , то подсказка берется оттуда.
Если же значения в массиве нет, то делается запрос на сервер по этому id, а ответ, во-первых, заносится в массив, а во-вторых, ДОЛЖЕН, НО НЕ ПОКАЗЫВАЕТСЯ в качестве текста посказки.

Таким образом, скрипт отрабатывает сейчас так:

я навожу на элемент с классом hero, нифига не происходит, но ответ появился в массиве .
отвожу курсор с элемента, снова навожу и подсказка показывается, т.к. найден в массиве.

Помогите, пожалуйста, допилить так, чтобы подсказка показывалась сразу в любом случае





<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>

var heroes = {"1":"shit 1" };
    
	
 $(document).tooltip({
    items:'.hero',
    tooltipClass:'preview-tip',
    position: { my: "left+15 top", at: "right center" },
	show:false,
	hide:false,
	track: false,
    content:function() {
		
		var elt = $( this );
		var hero_id = elt.data("id");
		
		if (typeof(heroes[hero_id]) != "undefined"){
			return heroes[hero_id];
		}
		else{
			var answer;		
			
			$.ajax({
			  url: "ajax_1.php",
			  method: "POST",
			  data: "a=1&b=2"			 
			}).done(function(data) {
				heroes[hero_id] = data;
				answer = data;
				
			}).fail(function() {
				answer = "error";
			});
			
			return answer;
			
		}
		
		
    }
});

</script>
<img src = "sw.jpg" class = "hero" data-id = "2">

Последний раз редактировалось Ramundo, 19.04.2018 в 22:48.
Ответить с цитированием