如何用jQuery ajax替换javascript ajax?

如何用jQuery ajax替换javascript ajax?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想做什么? 我正在考虑将javascript-ajax更改为jQuery-ajax。它看起来很短,我看到很多人在用它,但我真的不能让它工作 到目前为止我有什么? 我有一个元素: 1 当我点击元素时,它会检查按下了哪个键,如果它的鼠标1会检查元素的背景。若元素并没有背景色,它会将其更改为“红色”,并使用ajax将元素的id添加到MySQL数据库中。 若它已经有了红色背景(意味着它是在之前添加的),它将使用ajax从数据库中删除它 代码 检查功能 function check_element(ev

我想做什么?
我正在考虑将javascript-ajax更改为jQuery-ajax。它看起来很短,我看到很多人在用它,但我真的不能让它工作

到目前为止我有什么?
我有一个元素:
  • 1

  • 当我点击元素时,它会检查按下了哪个键,如果它的鼠标1会检查元素的背景。若元素并没有背景色,它会将其更改为“红色”,并使用ajax将元素的id添加到MySQL数据库中。 若它已经有了红色背景(意味着它是在之前添加的),它将使用ajax从数据库中删除它

    代码
    检查功能

    function check_element(evt, e){
        if(evt.which == 1){
            if(e.style.background == "") {
                e.style.background = "red";
                send_with_ajax("add", e);
            } else {
                e.style.background = "";
                send_with_ajax("delete", e);
            }
        }
    } 
    
    Ajax(使用javascript):

    send_calendar.php没有什么不同寻常的。只需从
    $\u GET['']
    中获取变量,并从数据库中插入或删除值。问题是,如何更改此函数以使其成为jQuery Ajax

    我试过什么?

    function send_with_ajax(action, e){
        $.Ajax({
            type: "GET",
            url: "send_calendar.php",
            data: "data="+e.id+"&action="+action+"",
            success: function(msg){
                alert( "Data Saved: " + msg ); //never shows this alert
            }
        });
    } 
    
    我还得到一个错误:
    uncaughttypeerror:对象函数(a,b){返回新的e.fn.init(a,b,h)}没有方法“Ajax”

    另外,以前从未使用过jQuery Ajax,所以我不知道我做错了什么。

    它是(区分大小写),而不是
    $。Ajax

    还要注意,
    data
    选项接受一个对象作为输入,
    $。ajax
    将自己进行参数序列化

    $.ajax({
        type: "GET",
        url: "ajax/send_calendar.php",
        data: {
            "data" : e.id,
            "action": action
        },
        success: function(msg) {
            alert("Data Saved: " + msg);
        }
    });
    

    GET和POST请求也有相应的速记方法。

    如果要使用jQuery,还要确保有正确的包装代码

    $(document).ready(function() {
    
     $.ajax({
           type: "GET",
            url: "send_calendar.php",
            data: "data="+e.id+"&action="+action+"",
            success: function(msg){
                alert( "Data Saved: " + msg ); //never shows this alert
            }
        });
    
    });
    

    它是
    $.ajax
    (小写
    a
    )。除此之外,它看起来还不错。另外,如果您已经知道要进行哪种类型的AJAX调用,请尝试使用快捷方式方法
    $.get()
    $.post()
    。i、 e.
    $.ajax(“send_calendar.php”、“data=“+e.id+””和action=“+action,函数(数据){alert”(“数据保存:”+data);})
    PS。以前从未使用过jQuery Ajax,因此我不知道我做错了什么。
    那么您应该做的第一件事就是阅读,注意Ajax只是代表异步JavaScript和XML。它不是“jqueryajax”。jQuery只是封装了进行AJAX调用的逻辑。它仍然是Javascript,就像jQuery仍然是Javascript一样。jQuery ajax应该在get请求中为您管理参数数据。请注意
    $.get()
    $.post()
    快捷方式方法。@crush,为完整性添加谢谢!=]当HTTP请求类型是静态的时,它们非常适合这种情况。完全错误,这不是
    $(document)。ready
    的目的。如果不需要访问DOM,则不需要
    $(document).ready
    ,而且“jQuery无需触发代码块”。它实际上所做的只是确保DOM对您提供给它的函数可用。感谢您的澄清。我需要更多地了解它的用途。
    $(document).ready(function() {
    
     $.ajax({
           type: "GET",
            url: "send_calendar.php",
            data: "data="+e.id+"&action="+action+"",
            success: function(msg){
                alert( "Data Saved: " + msg ); //never shows this alert
            }
        });
    
    });