2017-06-06 18 views
-3

私はこのオブジェクトを持っており、関数内のinit関数から変数をアクセスしたいとします。別の関数jquery内の変数にアクセスするには

変数へのアクセスに問題があります。どうすればこれを達成できますか?

// Summary Screen Functions 
var summary = { 
    init: function() { 

     var scrolled = 0; 

     $('.page-summary-action a').on('click', summary.continueToSummary); 
     $('.scroll-down').on('click', summary.scrollDown); 
     $('.scroll-up').on('click', summary.scrollUp); 
    }, 

    scrollDown: function(e) { 
     e.preventDefault(); 
     scrolled = scrolled + 300; 

     console.log('clicked'); 

     $(".data-cards").animate({ 
      scrollTop: scrolled 
     }); 
    }, 

    scrollUp: function(e) { 
     e.preventDefault(); 
     console.log('clicked'); 

     $(".data-cards").animate({ 
      scrollTop: 15 
     }); 
    } 
}; 

summary.init(); 
+1

必要があり、あなたの好奇心を満たすために

var summary = { init: function() { this.scrolled = 20; }, scrollDown: function(e) { console.log(this.scrolled); }, scrollUp: function(e) { console.log(this.scrolled); } }; summary.init(); summary.scrollDown(); 

だろう。 – PeterMader

+4

JavaScriptの変数の範囲は何ですか?(https://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript) –

+0

モジュールパターンを明らかにする。あるいは 'this.scrolled'を使って' scrolled'変数を公開する必要がありますが、 'new'を使ってオブジェクトを初期化する必要があります。 – evolutionxbox

答えて

1
var scrolled = 0; // Put the variable in an outer scope 
var summary = { 
    init: function() { 
     // access "scrolled" 
     scrolled = 0; 
    }, 

    scrollDown: function(e) { 
     // access "scrolled" 
    }, 

    scrollUp: function(e) { 
     // ... 
    } 
}; 

summary.init(); 

または

var summary = { 
    scrolled: 0, // Make it a property of the "summary" object 
    init: function() { 
     // access "scrolled" 
     summary.scrolled = 0; 
    }, 

    scrollDown: function(e) { 
     // access "scrolled" 
    }, 

    scrollUp: function(e) { 
     // ... 
    } 
}; 

summary.init(); 
+0

ありがとう男!私は2番目の答えが好きだった、私はオブジェクトの中に物事を保持したい。 – breezy

0

あなたの質問に続いて、あなたの代わりにVARのthis.scrolledを使用する必要があります。例では、あなたが `summary`オブジェクトの外で変数を入れたり` summary`オブジェクトのプロパティ行い、このリンクHow does the “this” keyword work?を検索し、Explanation from MDN

関連する問題