Функция Tizen Javascript не определена: Uncaught ReferenceError: checkToggle не определен

Я пытаюсь сделать простой http-запрос на свой сервер в веб-приложении tizen для gear s2.

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
    <title>Wearable UI</title>
    <link rel="stylesheet"  href="../../lib/tau/wearable/theme/default/tau.min.css">
    <link rel="stylesheet"  href="../../css/style.css">        
    <!--<script type="text/javascript" src="toggle.js"></script>-->
    <script type="text/javascript" >
function checkToggle(name){
    //make box2 = box1 when checked              
           var checkbox = document.getElementById(name);
           if (checkbox.checked == 1){
               HTTPReq('http://secret.nl/WebServer/edit.php?name='+name+'&value=1');
              console.log("set "+name+" ON");
           }else{
               HTTPReq('http://secret.nl/WebServer/edit.php?name='+name+'&value=0');
               console.log("set "+name+" OFF");
           }
}    
function HTTPReq(theUrl){
    console.log('httpReq');
    var client = new XMLHttpRequest();
    client.open('GET', theUrl);
    client.send();
    }        
</script>
</head>
<body>
    <div class="ui-page" data-enable-page-scroll="false">
        <div class="ui-content">
            <div class="ui-switch">
                <div class="ui-switch-text">
                Led001
                </div>
                <div class="ui-toggleswitch ui-toggleswitch-large">
                        <input type="checkbox" class="ui-switch-input" id="Led001" onclick="checkToggle('Led001')">
                    <div class="ui-switch-button"></div>
                </div>
                <div class="ui-switch-sub-text">
                    Bedroom Light
                </div>
            </div>
        </div>
        <script src="controls.js"></script>
    </div>
</body>
<script type="text/javascript" src="../../lib/tau/wearable/js/tau.min.js"></script>

</html>

Когда я эмулирую это, я получаю сообщение об ошибке: Uncaught ReferenceError: checkToggle не определен. Как бы то ни было, когда я сохраняю тот же файл, когда я в режиме веб-эмулятора и редактирую в реальном времени. код работает....? Может ли кто-нибудь объяснить это и сказать мне, как это исправить. Спасибо


person Thomas Huster    schedule 16.12.2015    source источник
comment
Я отредактировал сообщение, чтобы прояснить вопрос, спасибо за ответ   -  person Thomas Huster    schedule 16.12.2015


Ответы (2)


Пытаться:

document.getElementById("Led001").addEventListener("click", function(){
   checkToggle("Led001")
})

И удалите onClick из вашего HTML

person lukas293    schedule 16.12.2015
comment
Спасибо за ответ. Это не работает, если я регистрируюсь так: document.getElementById(Led001).addEventListener(click, function(){ console.log(clicked); checkToggle(Led001); }) ничего не делает. - person Thomas Huster; 16.12.2015
comment
Ваш код работает на моем эмуляторе Gear S2. Я не получаю никаких проблем. Доступен ли интернет на эмуляторе Gear S2? - person Shreeram K; 17.12.2015
comment
Да, я так думаю. Странно то, что иногда он работает 3/10 раз, и большую часть времени он говорит undefined. Ничего не меняя... - person Thomas Huster; 17.12.2015

Я не уверен на 100%, как я это исправил, но вот код, который работает:

( function () {

    var led001Button = document.getElementById("Led001"),
        led002Button = document.getElementById("Led002");   

    function httpReq(theUrl){
        var xmlhttp = null;
        xmlhttp = new XMLHttpRequest();
//      xmlhttp.onreadystatechange = function(){
//      if (xmlhttp.readyState == xmlhttp.DONE){
//      alert(xmlhttp.responseText);
//      }
//      else{
//      alert(xmlhttp.statusText);
//      }
//      };
//      xmlhttp.onerror = function(e){
//      alert("onerror: " + xmlhttp.statusText);
//      };
        xmlhttp.open("GET", theUrl);
        xmlhttp.send();
    }

    function checkToggle(name){
            //make box2 = box1 when checked              
               var checkbox = document.getElementById(name);
               if (checkbox.checked === true){
                   httpReq('http://secret.nl/WebServer/edit.php?name='+name+'&value=1');
//                console.log("set "+name+" ON");
               }else{
                   httpReq('http://secret.nl/WebServer/edit.php?name='+name+'&value=0');
//                 console.log("set "+name+" OFF");
               }
    }           
    if (led001Button) {
        led001Button.addEventListener("change", function(){
               checkToggle("Led001");
        });
    }
    if (led002Button) {
        console.log('test');
        led002Button.addEventListener("change", function(){
               checkToggle("Led002");
        });
    }
} () );

Спасибо за все ответы, они все помогли в некотором роде.

person Thomas Huster    schedule 18.12.2015