如何用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
}
});
});