Цитата:
|
я думал, что вызвав функцию main и вернув из неё обработчик, он (обработчик) будет доступен (благодаря замыканию).
|
Можно,
Рони показал как: в обработчик надо ставить результат вызова функции main.
Можно еще то же самое, но не программно, а через аттрибут onclick кнопки:
<script>
function main() {
"use strict";
var tmr;
function stopMove () { clearInterval(tmr); }
function startMove () { tmr = setInterval(moveBtn, 24); }
function moveBtn() { //Объявляй уж в одном стиле
var btn = $("#btn");
var left = parseInt( btn.css("margin-Left") ) + 1;
btn.css("margin-Left", left + "px");
};
return startMove;
};
</script>
<button onclick="main()">Click me!</button>
Только не особо увлекайся с этими плясками. Если просто играешься - окей, но в продакшн старайся писать как можно проще.
Цитата:
|
а что не так я сделал?
|
Написал два фрагмента кода в разном стиле.
Да, тоже касательно этого отрывка, сразу не заметил: Function Declaration внутри блока - это уже ES6, так что в старых браузерах оно не заработает.