感谢您检查这一点:
我正在做的是读取多个值,如名称和类以确定被单击的内容,然后将其作为参数发送到我服务器上的 PHP,以便我可以切换其类和名称值。
这很好用,第一次单击它时会切换类,但第二次单击该元素时,它不再起作用。查看 chrome 的控制台,我可以看到 POST 结果成功,但 $.post 回调函数不再运行。
$('a').click(function() {
if($(this).attr("name")=="Config"){
return;
}
else if ($(this).attr("name")=="Return"){
return;
}
else if ($(this).attr("name")=="Temperatura"){
return;
}
else{
var parameters = {};
parameters.devicename = $(this).attr("name").split('_')[0];
parameters.devicevalue = $(this).attr("name").split('_')[1];
parameters.devicestate = parseInt($(this).html());
alert (parameters.devicestate);
var selector;
if ($(this).hasClass("Luz_On") || $(this).hasClass("Luz_Off")){
selector = "Luz";
$(this).attr('id','ajaxelement');
alert("entro");
alert($(this).attr('name'));
alert(selector);
alert($(this).attr('id'))
}
else if ($(this).hasClass("Cortina_Up") || $(this).hasClass("Cortina_Down")){
selector = "Cortina";
$(this).attr('id','ajaxelement');
}
else if ($(this).hasClass("Temperatura")){
selector = "Temperatura";
$(this).attr('id','ajaxelement');
}
else if ($(this).hasClass("Rewind")){
selector = "Rewind";
$(this).attr('id','ajaxelement');
}
else if ($(this).hasClass("Play")){
selector = "Play";
$(this).attr('id','ajaxelement');
}
else if ($(this).hasClass("Pause")){
selector = "Pause";
$(this).attr('id','ajaxelement');
}
else if ($(this).hasClass("Forward")){
selector = "Forward";
$(this).attr('id','ajaxelement');
}
$.post(
"http://localhost/AplicacionWeb/test.php",
parameters,
function(data){
if (data.valid=='true')
{
switch(selector)
{
case "Luz":
alert("case");
if ($('#ajaxelement').attr('name') == "Luz_On"){
alert("caseif1");
$('#ajaxelement').removeClass("Luz_On").addClass("Luz_Off");
$('#ajaxelement').attr('name','Luz_Off');
$('#ajaxelement').removeAttr('id');
}
if ($('#ajaxelement').attr('name') == "Luz_Off"){
alert("caseif2");
$('#ajaxelement').removeClass("Luz_Off").addClass("Luz_On");
$('#ajaxelement').attr('name','Luz_On');
$('#ajaxelement').removeAttr('id');
}
break;
case "Cortina":
break;
case "Temperatura":
break;
case "Rewind":
break;
case "Play":
break;
case "Pause":
break;
case "Forward":
break;
default:
alert("C'est la vie");
}
}//data.valid
},
"json"
);
}
}); // end click