そのため、SO全体を広く検索しましたが、これに対する答えを見つけることができませんでした(おそらく、私が間違って理解しているためです)。
私はこのように定義されたJS関数を持っています(かなり単純化されています):
window.Gadget = function(name, cost){
this.name = name;
this.cost = cost;
this.hasBeenRevamped = false;
this.checkForUpdates = function(){
console.log("checking for updates...");
}
window.$(window).scroll(function() {
console.log("scrolling...");
this.checkForUpdates(); /* The this here is erroneously referring to jQuery and not my Gadget Object. I need to fix this but am not sure how*/
});
}
Gadget のすべてのインスタンスに対して checkForUpdates() を呼び出す方法を見つけようとしています。そのため、10 個の Gadget オブジェクトがある場合、関数を呼び出すと、すべてのオブジェクトが更新をチェックします。
最終的には、ウィンドウが jQuery 関数 $(window).scroll ごとにスクロールするたびに、すべてのガジェットに対してこの関数を呼び出したいと考えています。
これを達成する最良の方法は何ですか?現在、ウィンドウがスクロールすると、スクロールのコンソール ログが表示されますが、メソッド checkForUpdates がないというメッセージが表示されます。(これは) 私のガジェット インスタンスではなく、jQuery インスタンスを参照していると思います。jQuery で、checkForUpdates の Gadget インスタンスを呼び出すにはどうすればよいですか?
前もって感謝します!