$ .post与.on(“mouseenter”)的兼容性

时间:2013-10-31 23:29:26

标签: jquery ajax post

我已经有几个$.post在我的档案中工作了。我尝试发送的当前内容是:

$("#rbody").on("mouseenter", ".date, .quarter", function(e) {
    $.post("classinfo.php",
        {
            id: $("td").attr("value");
        },
        function(data) {
            $("#classinfo").html(data);
     });
});

td数据通过另一个AJAX调用输入:

$(".rselector").change(function() {
    $.post("reservation.php",
        {
            reserve: $("#result").val();
        },
        function(data) {
            $("#rinfo").html(data);
     });
});

因为在DOM加载后输入了td元素,所以我有.on函数。在.on("mouseenter", ...)下运行的其他功能正常工作,直到我添加$.post$.post不能与.on一起使用吗?我到处寻找,我找不到任何解决这个问题的文档。我甚至复制了以前的AJAX调用的代码,只是更改了相应的字段,但是当我尝试添加$.post时,整个脚本都会中断。

编辑:

这是破解之前的代码:

<script>
$(document).ready(function() {
var moveLeft = 20;
var moveDown = 10;

    $("#rbody").on("mouseenter", ".date, .quarter", function(e) {
        $("#classinfo").show()
        .css("top", e.pageY + moveDown)
        .css("left", e.pageX + moveLeft)
        .appendTo("body");
    }).on("mouseleave", ".date, .quarter", function() {
        $("#classinfo").hide();
    });

    $("#rbody").on("mousemove", ".date, .quarter", function(e) {
        $("#classinfo").css("top", e.pageY + moveDown).css("left", e.pageX + moveLeft);
    });
});
</script>

此添加会破坏整个脚本:

<script>
$(document).ready(function() {
var moveLeft = 20;
var moveDown = 10;

    $("#rbody").on("mouseenter", ".date, .quarter", function(e) {
        $.post("classinfo.php",
            {
                id: $("td").attr("value");
            },
            function(data) {
                $("#classinfo").html(data);
        });
        $("#classinfo").show()
        .css("top", e.pageY + moveDown)
        .css("left", e.pageX + moveLeft)
        .appendTo("body");
    }).on("mouseleave", ".date, .quarter", function() {
        $("#classinfo").hide();
    });

    $("#rbody").on("mousemove", ".date, .quarter", function(e) {
        $("#classinfo").css("top", e.pageY + moveDown).css("left", e.pageX + moveLeft);
    });
});
</script>

如果还有其他您想看到的内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

终于明白了。您在对象文字中有一个虚假的分号,导致语法错误:

$.post("classinfo.php", {
    id: $("td").attr("value");  // <-- There.
}, // ...

该代码应为:

$.post("classinfo.php", {
    id: $("td").attr("value")
}, // ...

将来,请记住查阅浏览器的错误控制台,以便立即发现此类问题。