1

我想做的事?
我正在考虑将 javascript ajax 更改为 jQuery ajax。它似乎更短,我看到很多人使用它,但我无法真正让它工作。

到目前为止我有什么?
我有一个元素:
<li id="unique_id" onmousedown="check_element(event, this)">1</li>
当我单击元素时,它会检查按下了哪个键,如果它的 mouse1 然后检查元素的背景。如果元素没有背景颜色,则将其更改为“红色”并使用 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):

function send_with_ajax(action, e){
    var xmlhttp;
    if (window.XMLHttpRequest){
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    xmlhttp.open("GET","ajax/send_calendar.php?data="+e.id+"&action="+action+"",true);
    xmlhttp.send();
}

send_calendar.php 没有什么特别之处。只需从数据库中获取变量$_GET['']和 INSERTS 或 DELETES 值。问题是,我怎样才能改变这个函数来使它成为 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
        }
    });
} 

我也得到错误:
Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method 'Ajax'

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

4

2 回答 2

4

它是$.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 请求的简写方法,.get().post()分别。

于 2013-01-29T19:50:25.630 回答
-2

如果你打算使用 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
        }
    });

});
于 2013-01-29T19:57:25.403 回答