Php jquery.click()问题-第三次单击时激发
我正在尝试使用jquery使用.ajax()更新数据库。其思想是,可以通过在数据库中设置一个标志(bool)来启用或禁用“用户”,该标志来自管理帐户,脚本“activate.php”只是执行数据库插入 这确实有效,但只有在我按了三次扳机之后,我才知道我做错了什么 代码如下:Php jquery.click()问题-第三次单击时激发,php,jquery,Php,Jquery,我正在尝试使用jquery使用.ajax()更新数据库。其思想是,可以通过在数据库中设置一个标志(bool)来启用或禁用“用户”,该标志来自管理帐户,脚本“activate.php”只是执行数据库插入 这确实有效,但只有在我按了三次扳机之后,我才知道我做错了什么 代码如下: $('.changeStatus').click(function(){ var currentStatus = $('#activeDisp').attr('value'); var activat
$('.changeStatus').click(function(){
var currentStatus = $('#activeDisp').attr('value');
var activate = "";
var changeText = "";
var id = $('#idDisp').attr('value');
switch(currentStatus){
case "0":
var activate = 1;
var changeText = "disable this user";
$('#activeDisp').val(activate);
break;
case "1":
var activate = 0;
var changeText = "enable this user";
$('#activeDisp').val(activate);
break;
}
var dataString = 'id='+ id +'&active='+ activate;
$.ajax({
type: "POST",
url: "activate.php",
data: dataString,
success: function(html) {
$('.changeStatus').html("<a href='#' class='changeStatus'>"+ changeText +"</a>");
//alert(html);
}
});
return false;
});
$('.changeStatus')。单击(函数(){
var currentStatus=$('#activeDisp').attr('value');
var=”;
var changeText=“”;
变量id=$('#idDisp').attr('value');
开关(当前状态){
案例“0”:
var=1;
var changeText=“禁用此用户”;
$('#activeDisp').val(激活);
打破
案例“1”:
var=0;
var changeText=“启用此用户”;
$('#activeDisp').val(激活);
打破
}
var dataString='id='+id+'&active='+activate;
$.ajax({
类型:“POST”,
url:“activate.php”,
数据:dataString,
成功:函数(html){
$('.changeStatus').html(“”);
//警报(html);
}
});
返回false;
});
#activeDisp和#idDisp是文本框,当页面加载时,PHP会将值插入其中
干杯更新: 重写的代码应如下所示:
$(function() {
$('.changeStatus').live('click',function() {
var currentStatus = $('#activeDisp').val();
var activate = (currentStatus == 1) ? 0: 1;
var changeText = (currentStatus == 1) ? "disable this user": "enable this user";
var id = $('#idDisp').val();
$('#activeDisp').val(activate);
var dataString = 'id=' + id + '&active=' + activate;
$.ajax({
type: "POST",
url: "activate.php",
data: dataString,
success: function(html) {
$('.changeStatus').text(changeText);
}
});
return false;
});
});
注意:如果您设置
当前状态
以返回一个与活动状态
相同的值,那么您可以得到更少的代码。您的点击处理程序在Javascript中的何处添加?在$(document).ready()
或其他地方?试试这个:$('.changeStatus').live('click',function(e){我正在使用谷歌代码,所以我现在得到了:Google.setOnLoadCallback(function(){$('.changeStatus').live('click',function(){干杯-我刚刚尝试了一下,但它似乎并没有解决问题,代码中是否还有其他需要修改的内容以使.live()正常工作?单击“”3次后,它完全按照预期工作…我已完全重写了您的代码。请看一看,并让我知道。