我想用spin.js创建一个函数。该函数加载微调器,然后如果它被再次调用它的参数,则停止微调器。我无法获得可变范围。所以当我调用函数停止时,我在submitSpinner
上得到了一个undefined。JavaScript函数的变量作用域问题
http://jsfiddle.net/atlchris/tQdZB/1/
function submitSpinner(stopSpinner) {
var theSubmitSpinner;
if (stopSpinner === true) {
theSubmitSpinner.stop();
$('#overlay').remove();
}
else {
$('body').append('<div id="overlay"><div id="spinner"></div></div>');
theSubmitSpinner = new Spinner({
lines: 13,
length: 15,
width: 5,
radius: 20,
color: '#ffffff',
speed: 1,
trail: 60,
shadow: false
}).spin(document.getElementById("spinner"));
}
}
submitSpinner();
$(function() {
$('#overlay').on('click', function() {
alert('click');
submitSpinner(true);
});
});
这是一个很好的解决方案,虽然在* createSubmitSpinner内部创建元素并且事件处理程序被绑定在其外部,这仍然有点奇怪。但我想我们并没有在这里谈论完美的代码设计;) – 2012-07-23 13:20:06
好吧,我承认它确实如此。 ( - : – complex857 2012-07-23 13:40:11