Цитата:
|
не определять в глобальном контексте, а сделать это внутри функции (в данном случае main), которая запуститься как только броузер построит ДОМ ))
|
Зачем?
Если определить функции внутри другой функции, то они только в ней видны и будут. Обработчики событий на элементах выполняются в глобальной контексте, и, соответственно, ни о каких stopMove и startMove они знать в принципе не могут.
Так что либо навешивай обработчик программно внутри функции main:
var main = function() {
"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");
};
$("#btn").on("click", startMove);
};
$(document).ready(main);
Либо объявляй функции глобально.