0
感謝您檢查了這一點:
什麼IM做的是閱讀像名稱和類,以確定被點擊的多個值,然後將其發送作爲paremeter到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
它可能是你的第二個電話被緩存。嘗試追加一個隨機數到你的網址。例如&rnd = xxxxx – Jules 2012-08-02 02:04:09
注意:在JavaScript中調用'parseInt()'時總是使用radix參數。如果你想要十個整數,把'parseInt($(this).html())'改成'parseInt($(this).html(),10)'並避免[奇怪的行爲](http:// stackoverflow。 COM /問題/ 850341 /解決方法換JavaScript的parseInt函數 - 八進制的錯誤)。 – thisgeek 2012-08-02 02:12:49