javscriptでスライダを作成しようとしています。私は2つの関数、最初にparseDom()
、DOMから要素を取得する責任がある必要があります。 2番目のものconfigureRange()
は、min
とmax
の値のような範囲属性を設定する必要があります。両方の関数は、window.onload
変数に割り当てられた匿名関数の内部で呼び出されます。これらの関数内の変数が異なるスコープにあるためJavaScript関数は別の関数スコープの変数にアクセスできません
function parseDom() {
var main = document.getElementById('main');
main.classList.add('red');
// red class added - main selector is ok
var rangeContainer = main.querySelector('.range-container');
rangeContainer.classList.add('green');
// green class added - rangeContainer selector is ok
var rangeInput = rangeContainer.querySelector('.range-input');
rangeInput.classList.add('crosshair');
// crosshair class added - rangeInput selector is ok
}
function configureRange(){
rangeInput.classList.add('pointer');
rangeInput.setAttribute('min', '0');
}
window.onload = function(){
parseDom();
configureRange();
}
はしかし、parseDom()
からの変数は、configureRange()
からaccesedすることはできません。だからconfigureRange()
のコードが動作しません。私は2つではなく1つの機能ですべてを行うことができますが、これはコードを乱雑にするでしょう。優れたモジュールソリューションを作成するにはどうすればよいですか?
コードはここにある: https://codepen.io/t411tocreate/pen/oeKwbW?editors=1111
関数にパラメータを渡します。 – Script47