0

我正在填充具有显示的 div 的内容 - 没有使用 AJAX。代码如下 -

$(".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”确实获得了所需的数据。但是,我也想提醒“隐藏 div”的文本,但这似乎没有发生。

是因为显示设置为无或 AJAX 还是我做错了什么?

4

2 回答 2

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);
        });
 });

$.post()基本上,jquery在执行其余代码之前不会等待返回的值。因此,您必须在回调中提醒文本,而不是在它的外部。

于 2013-11-07T21:54:38.453 回答
0

我认为这应该有效:

var fest_title = $(".hidden-div").html();
于 2013-11-07T21:54:32.353 回答