我想用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