2013-11-07 4 views
0

Я заполняю содержимое div, имеющего дисплей - никто не использует AJAX. Код выглядит следующим образом -Как получить текст div?

$(".event").mouseover(function() { 
    var id = $(this).attr("id"); 

    $(".hidden-div").html(""); 

    $.post("get-festival-desc.php", { 
     festid: id 
    }, function (data) { 
     $(".hidden-div").html(data); 
    }); 

    var fest_title = $(".hidden-div").text(); 
    alert(fest_title); 
}); 

Он работает все хорошо (проверено путем проверки элемента) и «скрытые ДИВ» действительно получают необходимые данные. Однако я также хочу предупредить текст «hidden-div», но это, похоже, не происходит.

Это из-за дисплея, установленного на none или AJAX или что-то, что я делаю неправильно?

+0

tip: Это как-то связано с асинхронным поведением – adeneo

ответ

2

Это проблема с асинхронными. Попробуйте это:

$(".event").mouseover(function(){ 
     var id = $(this).attr("id"); 
     $(".hidden-div").html(""); 
     $.post("get-festival-desc.php", {festid: id}, function(data){ 

      $(".hidden-div").html(data); 
      var fest_title = $(".hidden-div").text(); 
      alert(fest_title); 
     }); 
}); 

В принципе, JQuery не будет ждать стоимости $.post() вернуться до того, как выполнить бы остальную часть кода. Таким образом, вам нужно будет предупредить текст в обратном вызове, а не из него.

+0

Кажется логичным :) Попробуем! –

0

Я думаю, что это должно работать:

var fest_title = $(".hidden-div").html(); 
+0

Это тоже не сработает! –

Смежные вопросы