2016-04-04 2 views
-3

Я пытаюсь выяснить, как вызвать некоторые функции, используя html & javascript с кнопками, и у меня проблемы. В конце концов, у меня будет три различных функции для четырех разных реле. Так, например, у меня будет ручная кнопка включения и выключения для реле 1,2,3,4. Также будет функция калибровки, но это будет единственная кнопка для каждого реле. Последняя - это функция настройки, но я буду работать позже. С текущим кодом я получаю следующие ошибки.Простая HTML-кнопка с Javascript

ReferenceError: functionPost is not defined

Вот код, который у меня есть. Я почти неграмотен, когда дело доходит до javascript, поэтому извините за мое невежество.

<!DOCTYPE html> 
<html> 
    <head> 
    <script type="text/javascript" src="https://cdn.jsdelivr.net/particle-api-js/5.2.6/particle.min.js"></script> 
    <meta charset="UTF-8"> 
    </head> 
    <body> 
    <button type="button" onclick="functionPost('manual', '1,on')">Manual</button> 

    <script type="text/javascript"> 
var deviceID = '35002400094734343xxxxxx'; 
var token = '3aaacdf9121d404c1a60d5f5f8535xxxxxxx'; 
var particle = new Particle(); 

    function functionPost(functionName, functionArgument){ 
    var fnPr = particle.callFunction({ deviceId, functionName, functionArgument, token}); 
     fnPr.then(
    function(data) { 
    console.log('Function called succesfully:', data); 
    }, function(err) { 
    console.log('An error occurred:', err); 
    }); 
} 
</script> 

    </body> 
</html> 
+0

Если вы посмотрите на консоли есть другая ошибка до этого - 'неперехваченного SyntaxError: Неожиданные лексемы}', я думаю, что вы иметь дополнительный '}' в конце скрипта –

+3

Когда вы пишете код, используйте правильный отступ, который спасет нас от такого рода ошибок. –

+0

Я удалил лишний '}', надеюсь, эта тема может быть выпущена сейчас. – dustinjb

ответ

1

Попробуйте использовать слушатель событий: Добавить идентификатор для вашей кнопки, как показано ниже.

HTML:

<button type="button" id="postfunctionbtn" functionname="manual" functionargs="1,on">Manual</button> 

JAVASCRIPT:

document.getElementById("postfunctionbtn").addEventListener ("click", functionPost, false); 

function functionPost(functionName, functionArgument){ 
    console.log(this.getAttribute("functionname")); 
    console.log(this.getAttribute("functionargs")); 
    var fnPr = particle.callFunction({ deviceId, functionName,   functionArgument, token}); 
     fnPr.then(
    function(data) { 
    console.log('Function called succesfully:', data); 
    }, function(err) { 
    console.log('An error occurred:', err); 
    }); 
} 

Я утешал арг для вас undestand, как мы можем забрать их в этом случае. Вот скрипка: https://jsfiddle.net/swaprks/wu6pnLqj/

Для почему бы не использовать onlick смотрите по этой ссылку: Uncaught ReferenceError: function is not defined with onclick

+0

* имя функции * и * functionargs * должны быть * data- * атрибутами или связаны с элементом каким-либо другим способом. Прикрепление нестандартных атрибутов в HTML не является хорошей идеей. – RobG

+0

Я не уверен, как ответить на это, я как бы понял это ... но у меня больше вопросов. – dustinjb

+0

Каков ваш вопрос @ user2240531 – Swaprks

Смежные вопросы