每次单击按钮时,我都想向php脚本发送ajax命令。对于不同的方向,div被称为r,l,t,b。到目前为止,我已尝试使用下面的代码。但不知怎的,它不起作用。我在jquery上没有很多经验,这就是为什么我在这里要求一个简单的解决方案。我可以写4次相同的功能,但这肯定不是我想要的。
$(document).ready(function(){
function control(id){
$.ajax({
type: "POST",
url: "control.php",
data: {id: "1"},
success: function(data){
alert(data);
}
});
}
$('#r').mousedown(function(){
control($(this).attr('id'));
});
});
答案 0 :(得分:3)
首先......
只需给你所有的div一个
<div id="r" class="direction"></div>
<div id="l" class="direction"></div>
<div id="t" class="direction"></div>
<div id="b" class="direction"></div>
然后重写你的jquery
$(document).ready(function(){
$('.direction').mousedown(function(){
$.post("control.php",{id: $(this).attr('id')},function(msg){
alert(msg);
});
});
});
如果你碰巧从服务器接收JSON ...... 您必须为跨域json指定dataType为'json'或'jsonp'并使用$ .ajax
function control(theid){
$.ajax({
type: "POST",
url: "control.php",
data: {id: theid},
dataType: 'json',
success: function(msg){
alert(msg);
}
});
}
或者,如果您想保持简单,就像上面的。.post示例一样......使用getJSON
$(document).ready(function(){
$('.direction').mousedown(function(){
$.getJSON("control.php",{id: $(this).attr('id')},function(msg){
alert(msg);
});
});
});
答案 1 :(得分:2)
很难确切地知道你在问什么,但基本上你想要多个div的多用途点击事件。
在jQuery中,您可以通过用逗号分隔选择器来添加多个选择器 像这样:
$('#id, .class, element')
如果我正确理解了您的问题,这是一个使用较少代码来提供相同功能的示例。
$(function(){
$('#r,#l,#t,#b').mousedown(function(){
$.post('control.php',{id: $(this).attr('id')},function(data){
//handle data callback
alert(data);
});
});
});
我使用$.post
而不是$.ajax
,但请记住,如果使用post,get或getJSON等更简单的方法,就I&I而言,您将无法分配错误回调#39;我知道。希望在将来的jQuery版本中有所改变。
答案 2 :(得分:1)
function control(my_id){
$.ajax({
type: "POST",
url: "control.php",
data: {id: my_id},
success: function(data){
alert(data);
}
});
}
使用$_POST['id'];
,您应该获得所需的信息。