У меня есть следующая строка в файле site.html.Почему моя функция не определена с помощью Meteor?
<input type="text" name="income" id="income" onkeydown="myFunction(this.value)">
У меня есть отдельный site.js файл, который выглядит следующим образом:
if (Meteor.isClient) {
function myFunction(val) {
var income = document.getElementById("income").value;
}
var total = total + income;
}
if (Meteor.isServer) {
Meteor.startup(function() {
// code to run on server at startup
});
}
Так, по существу, мне нужно, чтобы получить значение из поля ввода либо размытости или типизированных (OnKeyDown) и добавьте его в локальную переменную «total», которая отображается где-то еще на странице. По какой-то причине моя функция не работает, когда я печатаю, я получаю «myFunction не определен» в консоли. Где мне нужно точно определить его (в моем файле .html не должен использоваться JavaScript).
Функция 'myFunction' должна быть объявлена вне какой-либо другой функции (глобальный охват), в противном случае встроенные обработчики событий, такие как' OnKeyDown = "MyFunction (this.value) "' не может видеть эту функцию. Лучшей практикой было бы привязать обработчик событий с помощью 'addEventListener' (вы сказали _« в JavaScript-файле не будет использоваться JavaScript в _html-файле », но все равно используйте встроенные прослушиватели событий). – Xufox
Вот ваш ответ https://www.meteor.com/tutorials/blaze/creating-an-app –
Возможный дубликат [JavaScript не вызывается в встроенном обработчике событий] (http://stackoverflow.com/questions/14035463/javascript-not-being-called-in-inline-event-handler) – Xufox