2014-01-05 45 views
0

我一直在努力與我的代碼在過去的2天。 而我只是無法讓我的按鈕工作。 該按鈕用於控制繼電器,並應在打開它的功能和打開它的功能之間切換。 似乎在relayOn功能需要幫助我的開關,必須切換2個功能

這裏被卡住是我的javascript:

var a = 1; 

function relayOn() { 
    hidden = document.getElementById("total"); 
    hidden.value = "on"; 
    form = document.getElementById("relay"); 
    form.method = "GET"; 
    form.action = "php.php"; 
    form.submit(); 
} 

function relayOff() { 
    hidden = document.getElementById("total"); 
    hidden.value = "off"; 
    form = document.getElementById("relay"); 
    form.method = "GET"; 
    form.action = "php.php"; 
    form.submit(); 
} 

$("submitOn").on("click", Toggle); 

function Toggle() { 
    if (a == 1) { 
     a = 2; 
     relayOn() 
    } else { 
     a = 1; 
     relayOff() 
    } 
} 

這是按鈕

<input type="button" id="submitOn" style=" top: 200px; border:1px solid #000; font-  size:40px;<?php background-color:green; " value="On" onClick="Toggle()"/> 
+0

爲什麼你通過jQuery **和**'onclick'屬性在按鈕上添加事件? – Ginden

+0

你可以發佈HTML和JavaScript在jsfiddle http://jsfiddle.net/? –

回答

0

ID選擇與#開始,你會更好使用data()比全球更多

$("#submitOn").on("click", function() { 
    var flag = $(this).data('flag'); 

    if (flag) { 
     relayOff(); 
    } else {  
     relayOn(); 
    } 

    $(this).data('flag', !flag); 
}); 

好像你可以只添加這一切togheter在事件處理程序,並得到

$("#submitOn").on("click", function() { 
    var flag = $(this).data('flag'), 
     hidden = $('#total'), 
     form = $('#relay'); 

    hidden.val(flag ? 'off' : 'on'); 
    form.attr('method', 'GET'); 
    form.attr('action', 'php.php'); 
    form.get(0).submit(); 

    $(this).data('flag', !flag); 
}); 
0

類似的東西? http://jsfiddle.net/zubC6/

function relayOn(btn) { 
    console.log("ON"); 
    $(btn).addClass('enabled').removeClass('disabled'); 
    $("#submitOn").attr('value', 'On'); 
} 

function relayOff(btn) { 
    console.log("OFF"); 
    $(btn).addClass('disabled').removeClass('enabled'); 
    $("#submitOn").attr('value', 'Off'); 
} 

function toggle() { 
    $("#submitOn").click(function() { 
     if ($(this).hasClass('enabled')) { 
      relayOff(this); 
     } else { 
      relayOn(this); 
     } 
    }); 
} 

勉強測試此代碼,對不起。